【发布时间】:2019-07-12 05:19:33
【问题描述】:
我必须只复制带有实际数据范围的每张纸。
我尝试了两个代码。一种是用于创建新的工作簿、工作表和重命名工作表。另一个是用于复制实际数据范围。两者都工作正常。当我尝试将这两个代码结合起来时,它不再起作用了。
Sub dural()
Dim b1 As Workbook, b2 As Workbook
Set b2 = ActiveWorkbook
Set b1 = Workbooks.Add
For Each sh2 In b2.Sheets
Set sh1 = b1.Sheets.Add
sh1.Name = sh2.Name
' Show hide Columns and Rows
sh2.Columns.EntireColumn.Hidden = False
Rows.EntireRow.Hidden = False
' Unfilter
If sh2.FilterMode = True Then
sh2.ShowAllData
End If
' Copy and Paste
sh2.Range("A1").Resize(Cells.Find(What:="*", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues).Row, _
Cells.Find(What:="*", SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious, LookIn:=xlValues).Column).Copy _
sh1.Range("A1")
Next sh2
End Sub
它给出了运行时错误。这是因为复制和粘贴注释下的代码。
【问题讨论】:
-
请注意,"doesn't work" 不是有用的错误描述。此外,有必要告诉 哪个 错误你得到了,在哪一行。请edit您的问题添加这些信息。
-
它给你带来了什么错误?