2016-08-18 28 views
-1

我想從一個工作表複製多行到另一個,我有一個工作表在A2行開始和結束於A108850數據,它開始於A2列並在I2列結束,我如何將所有數據複製到另一個工作表中,其中行以A4開頭,列以A4開頭,並以I4結束。Excel:複製並粘貼多個行和列從一個工作表到另一個

我怎麼可能通過一些宏?

謝謝。

+0

你嘗試過這麼遠嗎? SO不是代碼寫入服務。看[如何提出一個好問題](http://stackoverflow.com/help/how-to-ask)。除此之外,我建議你嘗試一下宏記錄器,並按照你剛剛描述的那樣進行手動描述,然後讓代碼執行此操作:) – DragonSamu

+0

我不會使用宏記錄器來創建宏,因爲性能較差。使用正確的代碼將使宏成百上千(?)倍更快。 –

+0

@ErikBlomgren我也不會,但OP沒有提供任何代碼。因此,從宏記錄器開始或嘗試編碼的東西是第一個開始,不提供OP與安裝程序 – DragonSamu

回答

1

相應試試這個

Worksheets("Sheet1").Range("A2:I108850").Copy Worksheets("Sheet2").Range("A4") 

變化的範圍內引用,工作表的名稱。

1

複製&粘貼是一個「昂貴」的操作,更大的範圍內,更昂貴的操作

你應該關注的只是值,你可以試試這個:

Worksheets("DestinationSheetName").Range("A2:I108850").Value = Worksheets("SourceSheetName").Range("A2:I108850").Value 

編輯在OP的評論之後

如果上次評論中的代碼僅具有粘貼值的相同目標,則將第二條語句更改爲以下內容:

With Worksheets("Sheet1").Range("A2:I108850") '<--| reference the "source" range you want to paste values from 
     .Range("A4").Resize(.Rows.Count, .Columns.Count).Value = .Value '<--| resize "destination" range accordingly to "source" one and paste values into it 
    End With 
當然,你必須檢查工作表名稱的

是有效的人對當前活躍工作簿

+0

我應該創建一個宏或在Microsoft VB模塊中嘗試腳本? – DevanDevak

+0

這段代碼將被放置在一個「子程序」中,您可以在VBA模塊中編寫該子程序,並且最終通過將其關聯到工作表按鈕或按Alt-F8並從列表框中選擇子程序名稱 – user3598756

+0

我已經這樣做了,但它給了我一個語法錯誤: Sub Copy() Worksheets(「Performance MMT」)。Range(「A2:I108850」)。Value = Worksheets(「Moscow」)。Range(「 A2:I108850「)。ValueWorksheets(」Sheet1「)。Range(」A2:I108850「)。Copy Worksheets(」Sheet1「)。Range(」A4「) End Sub – DevanDevak

相關問題