【发布时间】:2019-08-08 18:57:11
【问题描述】:
背景:
我在同一个目录中有两个工作簿,每个工作簿都有不同的工作表。
我想打开 book2.xlsx,执行 VBA,从 book1.xls 中的“sheet1”复制整个内容。在此之后, book1.xls 应该会自动关闭。
我有一个代码,它将内容移动到工作表旁边,然后我必须将此工作表重命名为所需的工作表。问题在于,另一张表中的公式无法按预期工作。代码如下,
Sub XLVBACopyFiles()
Dim MonthlyWB As Variant
Dim FileName As String
FileName = ActiveWorkbook.Name
Path = ActiveWorkbook.Path & "\"
Application.DisplayAlerts = False
Application.EnableEvents = False
'Copy the sheet1 next to sheet2 in the current workbook
Application.Workbooks.Open (Path & "book1.xls")
Sheets(Array("sheet1")).Select
Sheets("sheet1").Activate
Sheets(Array("sheet1")).Move After:=Workbooks( _
FileName).Sheets("sheet2")
Application.EnableEvents = True
Application.DisplayAlerts = True
Workbooks(FileName).Save
' Workbooks(FileName).Close
End Sub
对此的任何帮助将不胜感激。
【问题讨论】:
-
您能否提供一些带有违规公式的样本表?我已经测试了示例代码,没有发现错误...
-
你好 Antonio,这个公式的问题是,它会将工作表放在“sheet2”旁边,因为脚本中有以下行(After:=Workbooks(_FileName).Sheets("表 2")))。但是,我希望将其粘贴到 sheet2 本身。希望这可以帮助。谢谢。