2016-12-28 98 views
-2

Helloo 18次,複製的範圍內從一個工作表和數據的粘貼到其他工作表

我需要從一個工作表&膏每個數據的18倍,在其它工作表複製範圍的數據。

例如,我需要從第6行A列,F,在名爲「locale_Data」另一片d

所以,輸入板的第一數據應被粘貼到紙張的行(6:23)「locale_Data」 &如下以順序的方式的其它數據。

感謝您的幫助!

+1

向我們展示您的代碼及其問題,以便您幫助我 – user3598756

回答

0

你可以嘗試這樣的事情。我只顯示了一列。你可以重複其他列。確保將範圍$A$1:$A$2更改爲您所需的數據範圍。

Spreadsheet screenshot

D1 = INDEX($A$1:$A$2,QUOTIENT(ROW()-ROW($D$1),18)+1) 
1

如果您在數值範圍說A6:輸入工作表的A10,你想將它們複製locale_Data工作18次首發,在第6行,你可以做這樣的事情。

Dim LastRow As Long 
Dim i, startAt, totalRowsToCopy As Integer 
Dim sheet1 As Worksheet 
Dim sheet2 As Worksheet 

Set sheet1 = ThisWorkbook.Worksheets("Inputs") 
Set sheet2 = ThisWorkbook.Worksheets("locale_Data") 
LastRow = sheet1.Cells(sheet1.Rows.Count, "A").End(xlUp).Row 

sheet1.Range("A6:A" & (LastRow)).Copy 
startAt = 6 
totalRowsToCopy = LastRow - startAt + 1 
For i = 1 To 18 
    sheet2.Range("A" & startAt & ":A" & (startAt + totalRowsToCopy - 1)).PasteSpecial 
    startAt = startAt + totalRowsToCopy 
Next i 

(後Mat's建議編者)如果你只是想在行復制6 18倍於其他工作表,你可以這樣做值:

ThisWorkbook.Worksheets("Inputs").Range("A6").Copy 
ThisWorkbook.Worksheets("locale_Data").Range("A6:A23").PasteSpecial 

你必須重複此代碼爲每個單元格。

如果你想改變18爲其它數字,你總是可以串聯單元格區域像

Range("A6:A" & (6 + 18)).PasteSpecial 

讓我知道這是不是你在找什麼。

+0

由於如果只有人停止編寫依賴''的代碼,不需要詢問那些SO問題的數量,我就低估了這個答案。選擇'和'選擇'(和'.Activate'),隱式地處理'ActiveSheet'。例如,您可以簡單地執行'ThisWorkbook.Worksheets(「Inputs」)。Range(「A6」)。Copy'代替。 –

+0

謝謝馬特的馬克杯。我同意你的觀點,並且會從下次開始。 – user3391546

+0

隨時[編輯]你的答案,downvotes不是不可變的;-) –

相關問題