我在VBA代码上遇到了“ActiveCell.Row”命令的问题,我知道它必须是一个简单的修复程序,但是我已经做了一些研究,没有找到答案问题。最近活动的单元格行
下面的代码获取下一个活动单元格的行号,而不是我编辑的单元格。
示例:如果我编辑单元格“B2”并按下Enter键,它将返回B3行,因为在代码运行时它将成为当前活动单元格。如果我按Tab键,它将返回正确的数字“2”,因为活动单元格将是“C2”。如果我按向上箭头,它将返回行“1”,因为活动单元格将是“B1”。
我感谢您的帮助!谢谢! (附注:我试着给here的解决方案和其他一些我发现,但没有成功)
Private Sub Worksheet_Change(ByVal Alvo As Range)
Dim limite_maximo As Integer
limite_maximo = 1000
If Alvo.Cells.Count > 1 Or IsEmpty(Alvo) Then Exit Sub
If Alvo.Column = 2 And Alvo.Row >= 1 And Alvo.Row <= limite_maximo Then
Application.EnableEvents = False
a = ActiveCell.Row - 5
b = 10
Alvo.Offset(0, 2).Value = b
Alvo.Offset(0, 3).Value = a
Alvo.Offset(0, 4).Value = b & "." & Format(a, "000000")
Application.EnableEvents = True
End If
End Sub
'Alvo'是已更改的单元格,因此您应该使用该单元格而不是'activecell' – Rory 2015-02-09 11:35:36
'Alvo'是您更改的单元格的范围。所以使用'Alvo.Row'来获得这一行。 – 2015-02-09 11:44:06
超棒的家伙! 我已经改了行 A = ActiveCell.Row - 5 到 A = Alvo.Row - 5 而现在它完美的作品! 对新手问题抱歉,但我真的很困难。 非常感谢! – 2015-02-09 12:02:55