【问题标题】:VBA Copy from workbook and Paste to ThisWorkbookVBA 从工作簿复制并粘贴到 ThisWorkbook
【发布时间】:2017-05-20 06:22:28
【问题描述】:

我正在尝试复制模板并将其粘贴到当前工作簿中。但是代码出错了。我收到运行时错误 1004。

Sub templateToBBU()

'OPEN TEMPLATE
Application.AskToUpdateLinks = False
Application.DisplayAlerts = False
Dim sPath As String, sFile As String
Dim wb As Workbook
sPath = "C:\Users\user123\Desktop\"
sFile = sPath & "BBU_CMD_TEMPLATE.xlsx"
Set wb = Workbooks.Open(sFile)

'COPY TEMPLATE PASTE IN BBU DOC
wb.Sheets("TEMPLATE").Copy 
    After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)

End Sub

谢谢大家,

【问题讨论】:

  • 错误是什么,在哪一行?在此处查看复制粘贴示例stackoverflow.com/a/34886033/4539709
  • 谢谢 - 我会更新我的帖子(运行时错误 1004)
  • 你在哪一行得到错误?
  • 这里出错:wb.Sheets("TEMPLATE").Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
  • 你有两行,它应该是一个,或者在第一行的末尾添加`_`来告诉vba它是一个延续。

标签: vba excel excel-2010


【解决方案1】:

我测试了您的代码 Excel 2016,它可以正常工作。这似乎是 Excel 2003 - 2010 的一个已知问题,并且有一个 workaround。将您的模板文件保存为 Excel 模板 (xltx) 并尝试如下操作:

Sub templateToBBU()

'OPEN TEMPLATE
Application.AskToUpdateLinks = False
Application.DisplayAlerts = False
Dim sPath As String, sFile As String

sPath = "C:\Users\User123\Desktop\"
sFile = sPath & "Book1.xltx"

ThisWorkbook.Sheets.Add Type:=sFile
End Sub

【讨论】:

  • 我的代码适用于所有 xlsx 文件,但不适用于 xls 文件。我需要它在这两种情况下工作:/ 我似乎无法让这段代码在这种文件类型中工作。
  • 解决方案:将文件另存为 .XLS 并在 .XLS/.XLSX 中工作
猜你喜欢
  • 2016-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-21
  • 2017-09-08
  • 2017-07-26
  • 1970-01-01
相关资源
最近更新 更多