【发布时间】:2018-03-12 15:53:49
【问题描述】:
我正在尝试将所选工作簿中的数据复制并粘贴到我的主文件中。我遇到的一个主要问题是回到主文件,原因是主文件的名称每个月都会更改为它正在运行的月份,例如本月的“三月主文件” 下个月运行时的“四月主文件”。我尝试通过引用文件路径返回文件,但它不起作用,例如“Windows(模板文件)。激活”。关于是否有更简单的编写方法并且不必引用文件路径的任何建议?
这就是我到目前为止所做的:
Sub ImportRepurchData()
Dim combinedBook As Workbook
Dim filter As String
Dim caption As String
Dim combinedFilename As String
Dim combinedWorkbook As Workbook
Dim targetWorkbook As Workbook
TEMPLATEFile = Sheets("Dynamic").Range("ImportRepurch")
' Open Source Data
Set targetWorkbook = Application.ActiveWorkbook
filter = "Text files (*.xlsx),*.xlsx"
caption = "Please Select an input file"
combinedFilename = Application.GetOpenFilename(filter, , caption)
Set combinedWorkbook = Application.Workbooks.Open(combinedFilename)
' Paste Source Data into original workbook
Range("P4:P100000,AL4:AL100000").Select
Selection.Copy
Windows(TEMPLATEFile).Activate
Sheets("Input Sched-Unsched Split").Select
Range("B9:B100000,C9:C100000").Select
ActiveSheet.Paste
combinedWorkbook.Close
End Sub
【问题讨论】:
-
你似乎已经掌握了引用工作簿的窍门,为什么不将初始工作簿
Set指向一个对象,然后objectname.Activate呢? -
附言。你已经
DimmedCombinedBook- 但你不使用它。 -
@CLR 我认为问题是不是稍后在代码中识别工作簿。问题是从 to
Set开始识别工作簿。每个月,在代码运行之前它都有一个不同的名称。 Kieran1995 需要能够告诉 vba 哪个工作簿是主工作簿,在能够Set它到一个变量。 -
你可能是对的@Mistella,但问题是在代码开始时甚至打开了多少张工作表,其中一个正在运行代码等问题有点模糊。Jen 的建议遍历每个寻找模式的书名可能是解决方案,或者只是在开始时
Setting 正确的书也可以。这取决于设置。 -
@CLR 感谢您的建议。我刚刚使用“ThisWorkbook”返回到主文件,因为那是运行该文件的工作簿。我应该知道的简单解决方案,所有的好学习
标签: vba excel import excel-formula