我是初学者,所以我希望我的解释是明确的。我试图找到一种方法来使我的VB代码(找到最后一行/找到第一行)在我在工作表中插入新数据时自动运行(我也使用过滤选项)而不是必须手动制作(添加新数据后,按下VB中的按钮)。我使用下一个代码:
查找过滤数据的最后一行
Sub LR2()
Dim lastrow As Long
lastrow = Range("A" & Rows.Count).End(xlUp).Row
ActiveWorkbook.Sheets("Sheet1").Range("D3").Value = lastrow
End Sub
找到过滤数据的第一行
Sub Firstlastrow()
Dim r As Range
Dim StartRow As Long
Dim EndRow As Long
Set r = ActiveSheet.Range("A6:A9999").Rows.SpecialCells(xlCellTypeVisible)
' r is now $A$73351:$A$77343
StartRow = r.Row ' returns 73351
EndRow = r.Row + r.Rows.Count - 1
ActiveWorkbook.Sheets("Sheet1").Range("D2").Value = StartRow
End Sub
提前谢谢!
答案 0 :(得分:0)
虽然我不喜欢使用这些类型的事件(因为它们会在每次更改时运行都很昂贵)你可以使用“Worksheet_Change”事件。
因此,例如,当A:A列中的数据发生变化时,这将运行LR2子。
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A:A")) Is Nothing Then LR2
End Sub
Sub LR2()
Dim lastrow As Long
lastrow = Range("A" & Rows.Count).End(xlUp).Row
ActiveSheet.Range("D3").Value = lastrow
End Sub
答案 1 :(得分:0)
只需插入一个按钮即可。它不像触发它那么简单,但只需点击一下。
转到Excel中的开发人员标签。如果没有开发人员选项卡,请转到Excel选项,自定义功能区,然后单击开发人员框。
进入开发人员标签后,点击插入下的箭头,然后点击左上角的箭头。这将允许放入一个按钮。然后,您可以决定按钮的位置,大小,文本以及它将调用的宏。
希望这有帮助!
关于你的第二个问题:
Sub total()
Call LR2
Call Firstlastrow
End Sub
按下按钮调用total
sub,它将同时运行。