2016-05-06 88 views
-1

我卡在如何構建一段代碼:複製/粘貼數據納入合併列表

  1. 循環通過以數字開頭673的所有工作表(如673:綠,673:藍)
  2. 選擇從第5行了這些工作表中的數據,直到最後一行數據 - 代碼爲這個(由其他用戶慷慨地提供了作品)是

    Dim report As Worksheet 
    Set report = Excel.ActiveSheet  
    
    With report 
    .Range(.Cells(5, "K"), .Cells(.Rows.Count, "K").End(xlUp)).EntireRow.Select 
    End With 
    
  3. 選擇「顏色」工作表
  4. 將行粘貼到下一個可用空白行。可能會有多達40/50的工作表將數據粘貼到「顏色」工作表中,因此我需要將數據添加到下一行可用行中。

在此先感謝您。

+0

請出示你的代碼。 – findwindow

+0

你有沒有試過用宏記錄器?打開它,執行你的步驟,然後查看代碼。這不是太複雜,所以希望你可以用錄音機到那裏。如果沒有,請告訴我們您嘗試過的以及哪些地方無法正常工作。 – BruceWayne

+0

嗨,這對宏記錄器來說是不可能的,因爲它需要循環以「673」開頭的所有工作表。這些表的數量不固定。謝謝 – Vince

回答

0
  1. 循環工作簿紙張上,並檢查他們的名字

    For Each sheet in ActiveWorkbook.Worksheets 
        If Instr(sheet.Name,"673")>0 Then 
         ... 
        End If 
    Next 
    
  2. 好,但你會想複製。

    Selection.Copy 
    
  3. 只需選擇。

    Worksheets("Colours").Select 
    
  4. 查找最後一行然後轉到下一行。通過從下往上找到第一個已填充的行來找到該行。注意我使用了明確的圖紙參考,因爲您已經選擇了圖紙,這是不必要的。但是,如果您要在代碼中的多個工作表上操作數據,這是更好的形式。

    lastRow = Worksheets("Colours").Cells(Worksheets("Colours").rows.count,1).End(xlUp).Row 
    Worksheets("Colours").Cells(lastRow + 1, 1).Select 
    Activesheet.Paste