对行进行计数直到find特定的string
我想使用Excel VBA来计算行数,直到我打一个特定的string,并设置一个variables等于它。
就像是:
Dim i as Integer i = Worksheets("Scope Phase Document").Range("A1", Range("A1").End(xlDown)).Find("FACTS - What are we measuring?").Count
我知道这不是正确的语法,我可能错过了其他的东西,但只是使用我现在知道的不同的function,这是我希望会做的伎俩。 我明白了
运行时错误“91”说“对象variables或块variables未设置
我已经尝试了几种不同的方式来做这件事,但是却找不到一个不会导致错误的方法。
所以我想从A1开始计算所有的行,直到我到达特定的string“事实 – 我们在测量什么?”。
任何帮助将不胜感激!
我比较喜欢MATCH,但是如果没有find匹配,就会抛出一个错误。 所以我们需要testing一下:
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
所以你基本上想要MATCH()
:
=MATCH("FACTS - What are we measuring?",A:A,0)
它返回匹配的string的行号。
你的代码很好,除了你应该使用Row
属性。 您已经使用它的Count
属性将返回1,因为Find
方法返回一个单元格(find匹配的第一个单元格)。
Dim i as Integer i = Worksheets("Scope Phase Document").Range("A1", Range("A1").End(xlDown)).Find("FACTS - What are we measuring?").Row
像Scott提到的,如果你的文本没有find,Excel会抛出一个错误。
我会这样做:
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