ByRef Aragement类型不匹配VBA讨论
我正在用VBA编写一个方法,收到ByRef参数类型不匹配。在做了一些研究之后,我找到了一个快速修复方法——将我的值存储在另一个变量中,然后将这个新变量传递到我的方法中。有人能给我解释一下这种疯狂背后的方法吗?VBA的引擎盖下发生了什么?为什么它不接受我的原始变量 背景:ByRef Aragement类型不匹配VBA讨论,vba,excel,error-handling,Vba,Excel,Error Handling,我正在用VBA编写一个方法,收到ByRef参数类型不匹配。在做了一些研究之后,我找到了一个快速修复方法——将我的值存储在另一个变量中,然后将这个新变量传递到我的方法中。有人能给我解释一下这种疯狂背后的方法吗?VBA的引擎盖下发生了什么?为什么它不接受我的原始变量 背景: For Each excl In excelFiles Dim temp As String temp = excl Call uploadExcelFile(temp, schema) Next exc
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是一个字符串数组。请让我知道你们是否想要更多的信息。很高兴了解这里发生了什么。即使在字符串数组中循环,每个循环的VBA都需要一个变量作为循环“计数器”(
excl
)
你可以用
调用uploadExcelFile(Cstr(excl),模式)
避免中间
temp
变量。谢谢Tim!这意味着excl不再是字符串,而是for each循环使用的某种奇怪的中间类型?不能在for each循环中使用String in,它必须是变量或对象。由于excl不能声明为字符串,因此需要在字符串中显式转换该变量,以便方法能够理解并接受它为字符串。