Vba 将一个工作表中的所有筛选数据复制到新工作簿中
我很难找到一个可靠的方法将一个工作表中的可见单元格复制到新工作簿中。我的初始工作簿已被筛选。大致如下:Vba 将一个工作表中的所有筛选数据复制到新工作簿中,vba,excel,Vba,Excel,我很难找到一个可靠的方法将一个工作表中的可见单元格复制到新工作簿中。我的初始工作簿已被筛选。大致如下: Sub RangeToNew() Dim newBook as Workbook Set newBook = Workbooks.Add ThisWorkbook.Worksheets("worksheet").SpecialCells(xlCellTypeVisible).Copy _ Before:=newBook.Worksheets(1)
Sub RangeToNew()
Dim newBook as Workbook
Set newBook = Workbooks.Add
ThisWorkbook.Worksheets("worksheet").SpecialCells(xlCellTypeVisible).Copy _
Before:=newBook.Worksheets(1)
End Sub
这不起作用。看起来需要先将SpecialCells范围设置为范围对象,然后再进行复制。试试这个:
Sub rangeToNew_Try2()
Dim newBook As Excel.Workbook
Dim rng As Excel.Range
Set newBook = Workbooks.Add
Set rng = ThisWorkbook.Worksheets("Sheet1").Cells.SpecialCells(xlCellTypeVisible)
rng.Copy newBook.Worksheets("Sheet1").Range("A1")
End Sub
这很好,看起来好像能用。有一件事是为了我的案子才停止。我使用的是Office2007,原始文件是.xlsm。我发现错误:1004 error Description=Excel无法将工作表插入目标工作簿,因为它包含的行和列少于源工作簿。若要将数据移动或复制到目标工作簿,您可以选择数据,然后使用“复制”和“粘贴”命令将其插入到另一个工作簿的工作表中。我的第一本书中有>100万行,而创建的第一本书中只有65k行。