【发布时间】:2021-06-17 12:54:32
【问题描述】:
编辑
我仍在尝试将 Sheet 从 Workbook 复制到 另一个 Workbook,这看起来很容易,但出于某些原因我做不到。 对于我的测试,我制作了一个非常基本的文件和代码:(我的工作表包含一个简单的表格和一个运行宏的按钮,这是我唯一的宏)
工作中
将工作表复制到同一工作簿:
Sub CopyShtInTheSameWk()
Application.ScreenUpdating = False
Sheets("Sheet1").Copy Before:=Sheets(1)
Application.ScreenUpdating = True
End Sub
不工作
测试 n°1 ---------------------------------- ----------------
Sub CopyShtToAnotherWb()
Application.ScreenUpdating = False
Set WB = Workbooks.Open("C:\Users\33672\Desktop\test2.xlsm")
Sheets("Sheet1").Copy Before:=WB.Sheets(1)
WB.Close SaveChanges:=True
Application.ScreenUpdating = True
End Sub
这个测试只是在第二个工作簿中创建了一个新工作表,但没有复制里面的内容。
测试 n°2 ---------------------------------- ----------------
Sub CopySheetToAnotherWb()
Sheets("Sheet1").Copy Before:=Workbooks("C:\Users\33672\Desktop\test2.xlsm").Sheets(1)
End Sub
我收到了错误信息:
运行时错误 9 -> 下标超出范围
测试 n°3 ---------------------------------- ----------------
Option Explicit
Sub ExportWorksheet1()
Const sName As String = "Sheet1"
Const dPath As String = "C:\Users\33672\Desktop\test2.xlsm"
Const dIndex As Long = 4 ' often not such a good idea
Application.ScreenUpdating = False
Dim swb As Workbook: Set swb = ThisWorkbook
Dim sws As Worksheet: Set sws = swb.Worksheets(sName)
Dim dwb As Workbook: Set dwb = Workbooks.Open(dPath)
Dim dsh As Object: Set dsh = dwb.Sheets(dIndex) ' could be a chart
sws.Copy Before:=dsh
dwb.Close SaveChanges:=True
Application.ScreenUpdating = True
End Sub
我在 (Workbooks.Open()) 线上收到错误消息:
运行时错误 1004 -> 抱歉,我们找不到文件“C:\Users\33672\Desktop\test2.xlsm”
测试 n°4 ---------------------------------- ----------------
只需将表格范围的粘贴数据复制到另一个工作簿的工作表即可。
Sub CopyDataIntoAnotherShtOfAnotherWb()
Dim Wb As Workbook
Wb = Workbooks.Open("C:\Users\33672\Desktop\test2.xlsm")
ThisWorkbook.Worksheets("Sheet1").Range("MyTable").CurrentRegion.Copy
Wb.Worksheets("Bilan").Range("A1").PasteSpecial(xlPasteValues)
Wb.Close
End Sub
我在 Workbooks.Open() 行收到错误消息:
运行时错误 1004 -> 抱歉,我们找不到文件“C:\Users\33672\Desktop\test2.xlsm”
信息
-
我的文件 test2 的路径每次都是好的。
-
我正在公司计算机上使用 Excel 2016,但已经尝试在我的个人计算机上的 Microsoft 365 上执行相同的操作,没有任何区别。
【问题讨论】:
-
你的代码中有几个
UDF,我认为现在你的代码中存在这些UDF,尝试修改或在独立sub中测试它,然后你应该能够解决它 -
请编辑您的帖子并显示您的其余代码。可能,问题就在那里。
-
我只是编辑它,没有更多的UDF,问题还是一样
-
在引用
Workbooks集合中的工作簿时不应使用完整路径,您只需要工作簿名称。 -
我不知道,谢谢 Norie,我需要添加带有扩展名的名称吗?