2015-08-24 131 views
1

我想创建一个循环某些单元格值的函数。如果值包含的"X",计数应1.在Excel范围上创建循环

的语法增加应该是这样的:

Sub CountVars() 

Dim range As Variant 
Dim ranges As Variant 

Dim count as Integer 

'set array with ranges 
range = Array("c3", "f3", h3) 

For Each range In ranges 

    count = 0 
    'if range = "X" then 
    count = count + 1 
    End If  
Next 

,但我不能得到这个工作。有关我如何实现目标的任何想法?

回答

2

您可以直接在Range()函数中定义您的范围。不需要字符串数组。例如:

Dim r As Range, count As Long 

For Each r In Range("C3,F3,H3") 
    If r.Value = "X" Then count = count + 1 
Next 

请注意,以这种方式完成的字符串比较区分大小写。如果您需要检查xX,则可以将其转换为相同大小写或使用StrComp()vbTextCompare参数。

If UCase$(r.Value) = "X" Then ... 
' or 
If StrComp(r.Value, "X", vbTextCompare) = 0 Then ... 
+0

感谢您的回复。你的代码给了我一个编译错误:(错误数量的参数或无效的属性赋值,任何想法出现这个错误? –

+0

在哪一行?我在这里没有看到任何问题 – Bond

+0

它给出了一个错误,声明我的功能 - > Sub cDays() –