Excel 将工作簿声明为变量

Excel 将工作簿声明为变量,excel,vba,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) DA

我试图将工作簿位置声明为变量,这样就不必更改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
收到的错误是

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


您正在尝试将字符串分配给
工作簿
变量:

Dim location_1 As Workbooks
' ...

location_1 = "Table Separator (M2).xlsm"

一个快速解决方法是将变量定义为
String
,但您应该在中应用建议,如@BigBen所述。

很抱歉,我对Excel VBA不太熟悉,仅在线课程可查看。这将有助于您避免使用
选择
激活
,以及如何引用每个工作簿。谢谢您的回答。谢谢您的回答。这与BigBen@dcole204点击左侧的复选标记,将答案标记为“已接受”,很高兴您的问题得到解决。