2016-04-22 68 views
0

我是這個論壇的高興讀者,幫助我解決了很多問題,但現在我找不到-yet-。首先,我正在學習vba,但仍然是初學者!Excel VBA:將多個可變大小的表格/範圍複製到大型數據表中

問:

我正在尋找一個馬爾科其中,運行時:選擇與變量行多工作表的可變範圍:

所以應該選擇A25:L25和比了下去,直到最後其中填充單元在table.I發現的行認爲是這樣的:

Range("A25:L25").Select 
Range(Selection, Selection.End(xlDown)).Select.) 

那麼就應該複製的值,並將其粘貼到數據表「PIVOTDATA」上,下面對方。

這是多個工作表,其中數量不同。但工作表的範圍是在兩張之間:'客戶'&'結束'

我試圖儘可能具體,希望有人可以幫助!

+0

歡迎#2(SO)。請注意,這不是「爲我開發我的代碼」網站。而是一個網站,您發佈的代碼片段不起作用。嘗試使用宏錄像機記錄您需要的代碼,然後將其粘貼到您的問題中,然後查看它無法使用的位置。這樣你就可以避免在你的問題上使用Downvotes。你所要求的是相當簡單和可實現的。 –

+0

你有沒有開始嘗試你問題中的任何一點?如果不是的話,你可以通過記錄你想要在宏中做什麼然後從那裏開始學習。這裏的人很樂意幫忙,但不會爲你做這一切!在這一點上,這裏是一些開始的地方:如果A25:L25總是表的開始,那麼考慮如下:'Dim LRow As Long',然後有'LRow = Sheets(「sheet1」)。Cells(rows.count ,「A」)。End(xlup).Row'。然後你的桌子將在A25:L(LRow)中。這應該有助於你的可變範圍問題,嘗試將它添加到錄製的宏:)祝你好運 – IIJHFII

+0

@ bart1701看到它的第一篇文章,我已經回答了你的問題。讓我知道你是否需要 –

回答

0

這應該工作

Sub CopyDataToPIVOTDATASheet() 

     Dim PivotDataSheet As Worksheet 
     Set PivotDataSheet = ThisWorkbook.Sheets("PIVOTDATA") 

     Dim CurrentWorkSheetIndex As Long 
     Dim CurrentWorkSheet As Worksheet 
     Dim CurrentWorkSheetLastRow As Long 
     Dim PivotDataWorkSheetLastRow As Long 

     For CurrentWorkSheetIndex = ThisWorkbook.Sheets("Clients").Index +1 To ThisWorkbook.Sheets("END").Index - 1 

      Set CurrentWorkSheet = ThisWorkbook.Sheets(CurrentWorkSheetIndex) 
      CurrentWorkSheet.Activate 

      CurrentWorkSheetLastRow = CurrentWorkSheet.Cells(CurrentWorkSheet.Rows.Count, "L").End(xlUp).Row 

      PivotDataWorkSheetLastRow = PivotDataSheet.Cells(PivotDataSheet.Rows.Count, "L").End(xlUp).Row + 1 

      CurrentWorkSheet.Range(CurrentWorkSheet.Cells(25, "A"), Cells(CurrentWorkSheetLastRow, "L")).Copy _ 
          Destination:=PivotDataSheet.Cells(PivotDataWorkSheetLastRow, "A") 

     Next CurrentWorkSheetIndex 

End Sub 
+0

謝謝Jean-Pierre! 我做了幾次嘗試,下次將確保包括他們,這樣人們可以查看努力並嘗試幫助我發展我的技能!謝謝 – bart1701

+0

@ brat1701好東西。享受StackOverFlow –

相關問題