我想在我的VBA代码中使用IF语句,在该函数中调用一个Function并传递给它两个参数。我需要IF语句的原因是因为参数是我传递给函数的数组对象。下面是一个包含该问题的代码的缩写:我可以在函数参数中使用“If”语句吗?
For i = 1 To UBound(FilterArray)
For j = LBound(ptsheets, 1) To UBound(ptsheets, 1)
Filter_PivotField_Master _
pvtField:=ThisWorkbook.Worksheets(ptsheets(j, 1)).PivotTables(ptsheets(j, 2)).PivotFields(FilterArray(i, 1)), _
FilterTypeArray:= If FilterArray(i, 2) = 1 Then
InvCodeArray
Else
BoardMonthArray
End If
Next j
Next i
正如你所看到的,我通过循环的ptsheets阵列,并为每个条目,我打电话了Filter_PivotField_Master功能。该函数需要两个输入(一个pivotfield和一个字符串数组用于过滤)。名为“FilterArray”的数组只包含传递给该函数所需的信息。因为我似乎无法在内部的字符串数组(无论是InvCodeArray或BoardMonthArray)存储“FilterArray,”我想用这个if语句,如果FilterArray根据任一阵列之间进行选择(1,2)等于“1”或不。这里是否可以使用“IF”声明选项?
这个工作很完美。谢谢! – AGryckiewicz
@AGryckiewicz仅供参考我刚刚使用我的Rubberduck VBE插件的* Extract Method *重构工具对其进行了测试,并且它工作正常。你可能想看看。 –
不错。我真的不明白'重构工具'是什么,它的用途是什么,但我有兴趣学习更多。感谢您传递信息。 – AGryckiewicz