我想问一下是否可以在Excel的VBA中将一部分代码存储在字符串中,例如,下面的示例显示了我的意思(此代码无效):
Sub newMacro()
Dim wb As Workbook
Dim ws As Worksheet
Dim sAdditional As String
Dim rngWhereCount_1 As Range
Dim rngWhereCount_2 As Range
Dim iCellValue As Integer
Dim i as integer
Set wb = ThisWorkbook
Set ws = wb.Worksheets(1)
Set rngWhereCount_1 = ws.Columns(1)
Set rngWhereCount_2 = ws.Columns(2)
For i = 1 To 10
If (i = 1) Or (i = 2) Then
sAdditional = ", rngWhereCount_2, i"
Else
sAdditional = ""
End If
iCellValue = Application.WorksheetFunction.CountIfs(rngWhereCount_1, 1 & sAdditional)
Next i
End Sub
因此,问题是是否有一种简单而又聪明的方法来声明sAdditional(可能不是字符串),但使其在循环内成为可选的,同时sAdditional在内部包含Range和字符串...
提前致谢!P.
我认为不可能同时包含包含aString
和a的变量Range
。假设您要计算正数,则可以执行以下操作:
strCriterion2
。然后strCriterion2 = IIf(i=1 or i=2,"i",">=0").
SostrCriterion2
等于"i"
或">=0"
,取决于的值i
。CountIfs
为CountIfs(rngWhereCount_1, 1, rngWhereCount_2, strCriterion2)
。这样的想法是,每当我们不希望激活第二个条件时,就输入一个我们知道对该范围内所有条目都有效的条件。因此,如果所有条目均为正数,则如果我们施加,则第二个条件将被取消">=0"
。如果要包括负数,可以使用">=-2.2251E-308"
代替">=0"
(取决于Excel的版本,我给出的数字对于Excel 2003最低)。
希望以上内容对您有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句