声明与Workbooks()一起使用的variables

我打算在一个工作簿(“主”工作簿)中构build一个macros,它将从我的计算机上的其他工作簿中获取代码,并将其粘贴到主工作簿中。

我是新来的,但我知道,工作簿必须打开,然后才能select范围,复制数据等。

我希望能够做到的是将所有工作簿的path分配给variables,以便我可以轻松地对它们进行调用/读取/写入。 我想要做的是在下面的代码中说明

Sub MasterMacro() Dim MasterFile, File1 As Workbook Set File1 = Workbooks.Open("D:\test\folder1\file1.xlsx") Workbooks(File1).Range("A1").Value = "Help!" End Sub 

但是,这会产生运行时错误“13” – types不匹配,当它试图更改A1的值。

修正你的代码更新最后一行:

 File1.Worksheets("Sheet1").Range("A1").Value = "Help!" 

更多细节:

 Option Explicit Private Const WBM_PATH As String = "D:\test\folder1\" 'Module-level constant Private Const WBM_NAME As String = "file1.xlsx" Private Const WBM_ERR As String = "Unable to open Master file" Private Const BR As String = vbCrLf & vbCrLf Private wbM As Workbook, wsM As Worksheet, urM As Range 'Module-level variables Public Sub MasterMacro() If wbM Is Nothing Then If Len(Dir(WBM_PATH, vbDirectory)) > 0 Then 'If folder exists If Len(Dir(WBM_PATH & WBM_NAME)) > 0 Then 'If file exists Set wbM = Workbooks.Open(WBM_PATH & WBM_NAME) 'Set all Master objects Set wsM = wbM.Worksheets("Sheet1") Set urM = wsM.UsedRange urM.Cells(1, 1).Value2 = "Test" 'Set text in Cell A1 'copy value from file1.xlsx into the file executing the code ThisWorkbook.Worksheets("Sheet1").Range("A1").Value = urM.Cells(1, 1) 'copy a new value from original file into file1.xlsx ThisWorkbook.Worksheets("Sheet1").Range("A2") = "Test2" urM.Cells(2, 1) = ThisWorkbook.Worksheets("Sheet1").Range("A2") wbM.Close True 'close file1.xlsx, saving changes Else MsgBox "File '" & WBM_PATH & WBM_NAME & "' doesn't exist" & BR & WBM_ERR End If Else MsgBox "Folder '" & WBM_PATH & "' doesn't exist" & BR & WBM_ERR, , WBM_ERR End If End If End Sub