1

我正在用 VBA 编写一个方法,但我收到了 ByRef 参数类型不匹配。在做了一些研究之后,我找到了一个快速的解决方法——将我的值存储在另一个变量中,然后将该新变量传递给我的方法。谁能向我解释疯狂背后的方法?VBA 的底层发生了什么?为什么它不接受我的原始变量?

语境:

For Each excl In excelFiles
    Dim temp As String
    temp = excl
    Call uploadExcelFile(temp, schema)
Next excl

使用方法:

Private Sub uploadExcelFile(excelWb As String, schema As Worksheet)

excelFiles 是一个字符串数组。如果你们想要更多信息,请告诉我。很高兴知道这里发生了什么。

4

1 回答 1

3

即使您正在遍历字符串数组,VBA for-each 循环也需要一个变体作为循环“计数器”(excl在您的情况下)。

您可以使用

Call uploadExcelFile(Cstr(excl), schema)

以避免该中间temp变量。

于 2013-07-02T17:57:37.613 回答