2012-01-25 7 views
1

1つのワークシートの目に見えるセルのみを新しいワークブックにコピーするのに問題があります。私の最初のワークブックはフィルタリングされています。1つのワークシートのすべてのフィルタリングされたデータを新しいワークブックにコピーします。

Sub RangeToNew() 

    Dim newBook as Workbook 
    Set newBook = Workbooks.Add 

    ThisWorkbook.Worksheets("worksheet").SpecialCells(xlCellTypeVisible).Copy _ 
     Before:=newBook.Worksheets(1) 

End Sub 

これは機能しません。

答えて

3

まず、SpecialCellsの範囲をRangeオブジェクトに設定してからコピーを作成する必要があるようです。これを試してみてください:

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 
+0

これはうまくいくように見えます。一つの事は私の場合だけそれを停止しています。私はOffice 2007を使用しています。元のファイルは.xlsmです。エラーが発生します。 1004エラー説明=シートには、ソースブックよりも少ない行と列が含まれているため、シートを宛先ブックに挿入できません。コピー先のブックにデータを移動またはコピーするには、データを選択して、[コピーと貼り付け]コマンドを使用して別のブックのシートに挿入します。 –

+0

最初の本に100万を超える行があり、作成された行には65kしかありません。 –

+1

を参照してください。私はそれを行う別の方法を見つけた。私は私の答えを編集します。 –

関連する問題