2016-03-08 46 views
0

我想指望它含有一定值的行数行数,有三排,我工作了每个人的整体价值,并把到一个变量,这样我以后可以在脚本中打印到屏幕上。我只计算这是代码的第一部分在一定单元格范围内的行 - 寻找第一个和最后出现,这样我可以用这些作为行号计数使用VBA

Dim mediumStartRow As Integer 
Dim mediumEndRow As Integer 
Dim majVarCount As Integer 
Dim minVarCount As Integer 
Dim onTrackCount As Integer 

'Find the range of cells for Medium Projects, just gives the row number of the first occurnace and the last occurnace 
mediumStartRow = Range("H:H").Find(what:="Medium Project", after:=Range("H21")).Row 
mediumEndRow = Range("H:H").Find(what:="Medium Project", after:=Range("H21"), searchdirection:=xlPrevious).Row 
MsgBox "First and Last Row for Medium Projects: " & mediumStartRow & mediumEndRow 

    majVarCount = 0 
    minVarCount = 0 
    onTrackCount = 0 

    With Range("AS:AU" & mediumStartRow) 
     If Value = "Major Variance" Then 
      majVarCount = Rows.Count 
      Else 
      If Value = "Minor Variance" Then 
       minVarCount = Rows.Count 
       Else 
       If Value = "On Track" Then 
        onTrackCount = Rows.Count 
       End If 
      End If 
     End If 
     Do Until Range("AS:AU" & mediumEndRow) 
     Loop 
    End With 

    MsgBox "Major Project Count: " & majVarCount 

它上面的代码中,我到目前为止,但我似乎得到一个运行时错误 - object'_Global”的方法“范围”失败 - 上线

With Range("AS:AU" & mediumStartRow) 

就如何解决

+0

您没有使用起始行号码您正在查找范围AS:AU2000。更改为'带范围(“AS1:AU”和mediumStartRow)' –

+0

@Scott克拉纳我不能把它作为行我想从开始计数总是有不同的第一排,每次我运行该脚本,所以我做了一些脚本找到第一次出现最后出现即mediumStartRow和mediumEndRow – user3088476

回答

1

任何线索,您需要定义范围语句中的第一个和最后一个行号。即

With Range("AS" & mediumStartRow & ":AU" & mediumEndRow) 
+0

@ http://stackoverflow.com/users/2119523/s%c3%b8ren-holten-hansen已经摆脱了这个错误,并修正了该行“做,直到范围(“AS:AU”和mediumEndRow)做,直到范围(‘AS’&mediumEndRow&‘:AU’和mediumEndRow)”,这样看来,以反映您的评论‘’但我得到一个运行时错误类型错配 – user3088476

+0

我认为这可能是一个新的问题。由于你的代码在这个问题中,我看不到'DO'' LOOP'语句的用途。 –