【发布时间】:2020-06-15 13:27:21
【问题描述】:
我有一段 VBA 代码,可以将另一个工作簿中的一段数据导入我打开的 Excel 电子表格,但是,如果导入我已经创建的工作表,它不会导入。它每次都想打开一个新工作表。
这是代码:
Sub ImportCurrentMonthData()
' Get workbook...
Dim ws As Worksheet
Dim filter As String
Dim targetWorkbook As Workbook, wb As Workbook
Dim Ret As Variant
Set targetWorkbook = Application.ActiveWorkbook
' get the customer workbook
filter = "Excel files (*.xlsb),*.xlsb"
Caption = "Please Select an input file "
Ret = Application.GetOpenFilename(filter, , Caption)
If Ret = False Then Exit Sub
Set wb = Workbooks.Open(Ret)
wb.Sheets(1).Move After:=targetWorkbook.Sheets(targetWorkbook.Sheets.Count)
ActiveSheet.Name = "CurrentMonth"
我已经有一张名为“CurrentMonth”的工作表,我想将数据放入该电子表格。为了发生这种情况,我需要在 VBA 代码中进行哪些更改?
提前致谢。
【问题讨论】:
-
您可以激活“CurrentMonth”表:
wb.Worksheets("CurrentMonth").Activate问题是如何导入数据? -
"CurrentMonth"工作表在您的活动工作簿中,还是在您刚刚打开的工作簿中?如果在您的活动工作簿中,在打开第二个工作簿之前,您应该在Set targetWorkbook = Application.ActiveWorkbook之后立即移动代码。但是你的问题在哪里?您的代码不执行任何操作。您实际上将打开的工作簿的活动工作表命名为“CurrentMonth”。这就是你想要做的? -
@TomaszPaluch “CurrentMonth”表是我想要数据去的地方。此 VBA 当前将选定的电子表格导入到我的活动工作簿中,但创建了一个名为“CurrentMonth”的新工作表,我希望它导入到已经存在的工作表中,而不是打开一个新工作表。
-
@FaneDuru 该代码当前将打开一个关闭的工作簿并将数据导入到活动工作簿中的新工作表中,并将其命名为“CurrentMonth”。相反,我希望它将数据导入到已经存在的工作表中。这有意义吗?
-
它没有...试试,请回答我的问题。 “
"CurrentMonth"工作表在您的活动工作簿中,还是在您刚刚打开的工作簿中?”。 “可是你的问题在哪里?”您收到错误消息吗?上面的代码没有做任何事情,除了打开新工作簿并将其活动工作表重命名为“CurrentMonth”、“这是你想要做的吗?”