Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ByRef Aragement类型不匹配VBA讨论_Vba_Excel_Error Handling - Fatal编程技术网

ByRef Aragement类型不匹配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

我正在用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是一个字符串数组。请让我知道你们是否想要更多的信息。很高兴了解这里发生了什么。

即使在字符串数组中循环,每个循环的VBA都需要一个变量作为循环“计数器”(
excl

你可以用

调用uploadExcelFile(Cstr(excl),模式)


避免中间
temp
变量。

谢谢Tim!这意味着excl不再是字符串,而是for each循环使用的某种奇怪的中间类型?不能在for each循环中使用String in,它必须是变量或对象。由于excl不能声明为字符串,因此需要在字符串中显式转换该变量,以便方法能够理解并接受它为字符串。