excel - 如何使用存储在“Personal.xlsb”工作簿中的宏引用打开的工作簿?
问题描述
我正在尝试从任何以前制作的工作簿中复制数据。我的宏的工作原理是选择要从中复制的文件,直到粘贴行。ThisWorkBook.Worksheets("Imported Data").Range("A1").PasteSpecial xlPasteValues
它在当前打开的工作簿中的“导入的数据”是表 4处失败
。我相信问题可能是宏是从我的“Personal.xlsb”工作簿(空白)中运行的,所以它找不到要粘贴到的正确工作表。如果每次制作新的名称都会更改,我将如何引用当前打开的工作簿。
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
推荐阅读
- azure-data-lake - 每次都运行 U-SQL 脚本而不重新编译?
- node.js - Nodejs如何创建一个在cmd和终端中运行命令的按钮?
- excel - Excel VBA 数组结果偏移量
- python-2.7 - 使用 Kerberos auth thrift.transport.TTransport.TTransportException 连接到 Impala:
- javascript - 在数组中创建对象的多个实例
- cocoa - 如何防止 Cocoa 在每个完全不可见的子视图上调用 drawRect
- c# - 如果 CheckBox 是检查不起作用
- video - 如何将从 Shotcut 和 iMovie 等视频编辑软件导出的 mp4 文件大小减小到 youtube 视频等大小/质量比?
- docker - 查找 Docker 插件的参考
- find - 查找并 rm 额外的 srt 文件