Vba 复制目标工作簿中的所有工作表
我得到运行时错误'2147和我的生活,我看不到我错过了什么 我所要做的就是从我当前的工作中确定打开一个选定的工作簿并复制到所有工作表中 多谢各位Vba 复制目标工作簿中的所有工作表,vba,excel,Vba,Excel,我得到运行时错误'2147和我的生活,我看不到我错过了什么 我所要做的就是从我当前的工作中确定打开一个选定的工作簿并复制到所有工作表中 多谢各位 Sub GetFile() Dim fNameAndPath As Variant Dim wb As Workbook, wb2 As Workbook Dim Ws As Worksheet fNameAndPath = Application.GetOpenFilename(FileFilter:="Exce
Sub GetFile()
Dim fNameAndPath As Variant
Dim wb As Workbook, wb2 As Workbook
Dim Ws As Worksheet
fNameAndPath = Application.GetOpenFilename(FileFilter:="Excel Files (*.XLS), *.XLS", Title:="Select File To Be Opened")
If fNameAndPath = False Then Exit Sub
Workbooks.Open Filename:=fNameAndPath
Application.ScreenUpdating = False
Set wb = ActiveWorkbook
Set wb2 = Workbooks.Add(fNameAndPath)
For Each Ws In wb2.Worksheets
Ws.Copy After:=wb.Sheets(wb.Sheets(1))
Next Ws
Application.ScreenUpdating = True
End Sub
这应该对你有用。小心,尽管它在目录中的所有文件中循环(对不起,我基本上是从我保存的脚本库复制/粘贴的) 错误发生在哪一行?在第Ws.Copy After:=wb.Sheets(wb.Sheets(1))行我在这一行thisWB.Sheets.Add After:=Worksheets(Worksheets.Count)后得到了相同的错误。
在thisWB
中启用了保护工作簿吗?@RyanH我最后不得不更改它-显然有些事情不正确。这是一种工作方式,它正在将工作表复制到我隐藏的个人宏手册中。我还有一张纸,里面有嵌入的文件,它没有把它们带过来。啊,这是一个全新的蠕虫罐头。此代码仅带来工作表内容。我还得弄清楚如何移动其他物品。我可能需要一段时间才能回复你——工作等等
Public Sub this()
Dim path As String, fileName As String
Dim sheet As Worksheet, thisWB As Workbook, thatWB As Workbook
Dim arr() As Variant
Dim rowC As Long, colC As Long
path = "C:\Users\dcoats\Desktop" & "\"
fileName = Dir(path & "*.xl??")
Set thisWB = ThisWorkbook
Do While Len(fileName) > 0
Set thatWB = Workbooks.Open(path & fileName, True, True)
For Each sheet In thatWB.Sheets
arr = sheet.UsedRange
rowC = sheet.UsedRange.Rows.Count
colC = sheet.UsedRange.Columns.Count
thisWB.Sheets.Add After:=Worksheets(Worksheets.Count)
thisWB.ActiveSheet.Range(thisWB.ActiveSheet.Cells(1, 1), thisWB.ActiveSheet.Cells(rowC, colC)).Value2 = arr
Next sheet
thatWB.Close False
fileName = Dir()
Loop
End Sub