将工作簿声明为变量

时间:2019-07-29 22:45:56

标签: excel vba

我试图将工作簿位置声明为变量,所以不必在100个位置更改名称。代码块仅在目标更改时被复制多次

Sub copyToDatabase_2()
'
' Copy from seperator to DB
'
    Dim location_1 As Workbooks
    Dim location_2 As Workbooks


    location_1 = "Table Separator (M2).xlsm"
    location_2 = "TCE-525 (M2) DAVID.xlsm"

    Windows(location_1).Activate
    Range("A5:E16").Select
    Selection.Copy
    Windows(location_2).Activate
    Range("R3").Select
    ActiveSheet.Paste

    Windows(location_1).Activate
    Range("A19:E30").Select
    Selection.Copy
    Windows(location_2).Activate
    Range("R35").Select
    ActiveSheet.Paste

End Sub

收到的错误是

  

编译错误:无效使用属性。

1 个答案:

答案 0 :(得分:1)

您正在尝试将字符串分配给Workbooks变量:

Dim location_1 As Workbooks
' ...

location_1 = "Table Separator (M2).xlsm"

一种快速解决方案是将变量定义为String,但是您应该应用How to avoid using Select in Excel VBA中的建议,如@BigBen所述。