如何使用存储在我的 "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