计算行直到找到特定字符串

时间:2017-11-10 14:46:29

标签: excel vba excel-vba

我正在尝试使用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 - 我们测量什么?”。

非常感谢任何帮助!

4 个答案:

答案 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