我正在尝试使用Excel VBA来计算行数,直到我点击特定字符串并将变量设置为等于它。
类似的东西:
Dim i as Integer
i = Worksheets("Scope Phase Document").Range("A1", Range("A1").End(xlDown)).Find("FACTS - What are we measuring?").Count
我知道这不是正确的语法,我可能错过了其他的东西,但只是使用我目前所知的不同功能,这是我希望能做到的。我得到了
运行时错误'91'说“对象变量或不带块变量” 设置
我尝试了几种不同的方法,但无法找出不会导致错误的方法。
所以我想从A1开始并计算所有行,直到我到达特定字符串“FACTS - 我们测量什么?”。
非常感谢任何帮助!
答案 0 :(得分:2)
我更喜欢MATCH,但是如果找不到匹配则会抛出错误。所以我们需要测试一下:
Dim i As Long
i = 0
On Error Resume Next
i = Application.WorksheetFunction.Match("FACTS - What are we measuring?", ActiveSheet.Range("A:A"), 0)
On Error GoTo 0
If i > 0 Then
' do you stuff with i
End If
答案 1 :(得分:1)
所以你基本上想要MATCH()
:
=MATCH("FACTS - What are we measuring?",A:A,0)
返回匹配字符串的行号。
答案 2 :(得分:0)
您的代码很好,除非您应该使用Row
属性。您使用它的Count
属性将返回1,因为Find
方法返回一个单元格(找到匹配项的第一个单元格)。
Dim i as Integer
i = Worksheets("Scope Phase Document").Range("A1", Range("A1").End(xlDown)).Find("FACTS - What are we measuring?").Row
像Scott提到的那样,如果找不到你的文字,Excel会抛出一个错误。
答案 3 :(得分:0)
我这样做:
Sub rowcounter()
Dim i As Integer
Range("A1").Select
i = 0
Do
Selection.Offset(1, 0).Select
i = i + 1
Loop Until Selection.Value = "FACTS - What are we measuring?"
MsgBox "rows count is " & i
End Sub