EXCEL VBA 求根据区域单元格的行数来判断来调用宏

IF B--D列的有数值的单元格的行数(每个单元格都有数值)>=200,那么调用宏“C”,否否则调用宏“A“ 。求高手写代码。

你这三列的数据是否都是一样有或空?就是说,B1有数据,那么C1和D1也有数据,如果B1没数据C1和D1也没数据,如果是这样,代码如下
Sub aa()
Dim R&, i&, x&
R = Range("B65536").End(xlUp).Row
For x = 1 To R
If Cells(x, 2) <> "" Then i = i + 1
Next x
If i >= 200 Then Call 宏C Else Call 宏A
End Sub
如果是B1有,C1和D1不一定有,计算时如果按B1有+1行,B2没有,而C1或D1有,也+1行,也就是说这三列同一行只有有一列有数据都算一行。那么代码如下:
Sub aa()
Dim R&, i&, x&
R = Range("B65536").End(xlUp).Row
For x = 1 To R
If Cells(x, 2) <> "" Or Cells(x, 3) <> "" Or Cells(x, 4) <> "" Then i = i + 1
Next x
If i >= 200 Then Call 宏C Else Call 宏A
End Sub
如果这三列同一行都必须有数据才算一行。代码如下
Sub aa()
Dim R&, i&, x&
R = Range("B65536").End(xlUp).Row
For x = 1 To R
If Cells(x, 2) <> "" And Cells(x, 3) <> "" And Cells(x, 4) <> "" Then i = i + 1
Next x
If i >= 200 Then Call 宏C Else Call 宏A
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-09
Dim a%, b%, c%, d%, e%
a = 20 '最大行数改这个
For b = 1 To a
For c = 2 To 4
If Cells(b, c) = "" Then Exit For
Next c
If c = 5 Then d = d + 1
Next b

if d>=200 then call MacroC else call MacroA
相似回答