我试图通过在第一个代码中将表转换为数组,然后在第二个代码中调用它来创建全局数组。但是,调用第二个代码时出现运行时错误“ 13”类型不匹配。
Public prio_row_num
Public prioritytbl As Variant
Sub Tabletoarray()
Dim prioritytbl As Variant
Worksheets("Prod_met").Activate
prioritytbl = ActiveSheet.ListObjects("prioritylist").DataBodyRange.Value
End Sub
Sub test()
MsgBox (prioritytbl(2, 2))
End Sub
我希望能够在代码的后续部分中调用prioritytbl。
答案 0 :(得分:0)
如果可能,您不应使用全局变量。让我们为您举例说明如何做到这一点:
Option Explicit
Sub Tabletoarray()
Dim prioritytbl As Variant
prioritytbl = Worksheets("Prod_met").ListObjects("prioritylist").DataBodyRange.Value
Call test(prioritytbl)
End Sub
Sub test(prioritytbl As Variant)
MsgBox (prioritytbl(2, 2))
End Sub
请说一下,如果您需要使用全局变量,则不能在任何子变量中再次声明它:
Option Explicit
Public prio_row_num
Public prioritytbl As Variant
Sub Tabletoarray()
' Dim prioritytbl As Variant this needs to be deleted
prioritytbl = Worksheets("Prod_met").ListObjects("prioritylist").DataBodyRange.Value
End Sub
Sub test()
MsgBox (prioritytbl(2, 2))
End Sub