如何使用存储在我的 "Personal.xlsb" 工作簿中的宏来引用打开的工作簿?
How to reference an open workbook with a macro that is stored in my "Personal.xlsb" workbook?
我正在尝试从任何以前制作的工作簿中复制数据。我的宏可以选择要从中复制的文件,直到粘贴行。
它失败于
ThisWorkBook.Worksheets("Imported Data").Range("A1").PasteSpecial xlPasteValues
“导入的数据”是当前打开的工作簿中的 sheet 4。
我认为问题可能是宏 运行 来自我的“Personal.xlsb”工作簿(空白),因此无法找到要粘贴到的正确 sheet。如果每次创建新工作簿时名称都发生变化,我将如何引用当前打开的工作簿。
Sub Get_Data_From_File()
Dim FileToOpen As Variant
Dim OpenBook As Workbook
Application.ScreenUpdating = False
FileToOpen = Application.GetOpenFilename(Title:="Browse for your file
& Import Range", FileFilter:="Excel Files(*.xlsx*),*xlsx*")
If FileToOpen <> False Then
Set OpenBook = Application.Workbooks.Open(FileToOpen)
OpenBook.Sheets(3).Range("A1:F27").Copy
ThisWorkBook.Worksheets("Imported
Data").Range("A1").PasteSpecial xlPasteValues
OpenBook.Close False
End If
Application.ScreenUpdating = True
End Sub
假设它,但在调用 Application.Workbooks.Open()
之前执行它,因为这会更改当前工作簿。
在设置 OpenBook 之前,设置一个新变量 Set TargetRange = Worksheets("Imported Data").Range("A1")
。 (或者你可以使用 ActiveWorkbook.Worksheets
...)然后你可以更改
ThisWorkBook.Worksheets("Imported Data").Range("A1").PasteSpecial xlPasteValues
到
TargetRange.PasteSpecial xlPasteValues
我正在尝试从任何以前制作的工作簿中复制数据。我的宏可以选择要从中复制的文件,直到粘贴行。
它失败于
ThisWorkBook.Worksheets("Imported Data").Range("A1").PasteSpecial xlPasteValues
“导入的数据”是当前打开的工作簿中的 sheet 4。
我认为问题可能是宏 运行 来自我的“Personal.xlsb”工作簿(空白),因此无法找到要粘贴到的正确 sheet。如果每次创建新工作簿时名称都发生变化,我将如何引用当前打开的工作簿。
Sub Get_Data_From_File()
Dim FileToOpen As Variant
Dim OpenBook As Workbook
Application.ScreenUpdating = False
FileToOpen = Application.GetOpenFilename(Title:="Browse for your file
& Import Range", FileFilter:="Excel Files(*.xlsx*),*xlsx*")
If FileToOpen <> False Then
Set OpenBook = Application.Workbooks.Open(FileToOpen)
OpenBook.Sheets(3).Range("A1:F27").Copy
ThisWorkBook.Worksheets("Imported
Data").Range("A1").PasteSpecial xlPasteValues
OpenBook.Close False
End If
Application.ScreenUpdating = True
End Sub
假设它,但在调用 Application.Workbooks.Open()
之前执行它,因为这会更改当前工作簿。
在设置 OpenBook 之前,设置一个新变量 Set TargetRange = Worksheets("Imported Data").Range("A1")
。 (或者你可以使用 ActiveWorkbook.Worksheets
...)然后你可以更改
ThisWorkBook.Worksheets("Imported Data").Range("A1").PasteSpecial xlPasteValues
到
TargetRange.PasteSpecial xlPasteValues