将工作表传递给一个过程
我试图将三个工作表传递给一个过程调用
Call pivot_table(Sheets("Sheet2"), Sheets("Sheet3"), Sheets("Sheet4"))
但是,我得到一个错误的SUBSCRIPT OUT OF RANGE
也如果我试试
Dim ws, ws1, ws2 As Worksheet Set ws = Sheets("Sheet2") Set ws1 = Sheets("Sheet3") Set ws2 = Sheets("Sheet4") Call pivot_table(ws, ws1, ws2)
我得到错误作为ByRef arguement type mismatch
我的程序是
Sub pivot_table(ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet)
无法find合适的解决scheme。 谢谢您的帮助。
工作簿中是否有名为“工作表2”,“工作表3”和“工作表4”的工作表? 如果没有,这是您的下标超出范围错误的原因。
ByRef参数types不匹配的原因是您的ws,ws1和ws2声明不是将全部三个声明为Worksheets。
VBA不支持这种在一行上的多variables分配。 如果你想在一行上声明,你仍然必须显式声明每个variables的types,即
Dim ws As Worksheet, ws1 As Worksheet, ws2 As Worksheet
不带types的声明将创build一个Variantvariables,即ws,ws1:Variant,ws2:Worksheet。