2016-06-08 34 views
0

我想寫一個宏的VBA,將數據從我的表中的數據從平鋪「前端」的表複製到另一個表調用表「原始數據」。這兩個表是下面的圖片excel宏複製循環中的數據,直到空白行命中錯誤

enter image description here

現在我只用綠色表格處理上述

enter image description here

這裏是我到目前爲止的代碼進行復制並粘貼到另一片在下一個空行:

Sub transfer() 
    Dim x As Long 
'set starting point at row 8 
    x = 8 
    Dim BlankFound As Boolean 
'defines the sheet the data is being coppied from 
    Dim sourceSheet As Worksheet: Set sourceSheet = ThisWorkbook.Worksheets("Front End") 
'defines the sheet the data is being pasted into 
    Dim destSheet As Worksheet: Set destSheet = ThisWorkbook.Worksheets("Raw Data") 

    Do While BlankFound = False 

'selects the next row where the 1st column is empty 
     lMaxRows = destSheet.Cells(destSheet.Rows.Count, "A").End(xlUp).Row 
'pastes the data from the specified cells into the next empty row 
      'destSheet.range("A" & lMaxRows + 2).Value = sourceSheet.range("C2").Value 
destSheet.range("M" & lMaxRows + 2).Value = sourceSheet.range("E2").Value 
destSheet.range("N" & lMaxRows + 2).Value = sourceSheet.range("E4").Value 
destSheet.range("P" & lMaxRows + 2).Value = sourceSheet.range("G4").Value 
destSheet.range("Q" & lMaxRows + 2).Value = sourceSheet.range("C4").Value 
destSheet.range("O" & lMaxRows + 2).Value = sourceSheet.range("I3").Value 
destSheet.range("B" & lMaxRows + 2).Value = sourceSheet.range("Bx").Value 
destSheet.range("L" & lMaxRows + 2).Value = sourceSheet.range("Cx").Value 
destSheet.range("F" & lMaxRows + 2).Value = sourceSheet.range("Dx").Value 
destSheet.range("G" & lMaxRows + 2).Value = sourceSheet.range("Ex").Value 
destSheet.range("I" & lMaxRows + 2).Value = sourceSheet.range("Gx").Value 
destSheet.range("K" & lMaxRows + 2).Value = sourceSheet.range("Hx").Value 
destSheet.range("H" & lMaxRows + 2).Value = sourceSheet.range("Nx").Value 

     x = x + 1 
     If Cells(x, "E").Value = "" Then 
     BlankFound = True 
     end if 
    Loop 
End sub 

我需要宏從g複製每一行將表重新定位到「原始數據」表中的下一個空行,直到宏命中列E的「實際循環」,即空。

任何幫助表示讚賞,謝謝!

+0

我永遠不懂爲什麼人們知道他們需要一個循環,然後繼續不穀歌循環XD – findwindow

+0

我沒有谷歌循環,我不明白的主要事情是如何更改複製/粘貼語句,所以臨時他們不只是複製相同的單元格,然而多次循環運行 – Vbasic4now

+0

然後請把你的循環代碼放在你的OP中,這樣我們可以幫助你。 – findwindow

回答

1

我會做你找到你的下一個單元格粘貼的方式相同。

LastRow = sourceSheet.range("E8").end(xldown).row然後

For curRow = 8 to LastRow

或檢查實際的空白像Do while sourcesheet.range("E" & curRow).value<>""

+0

我更新了代碼,並嘗試了循環現在它只是不復制任何數據 – Vbasic4now

+0

另外我得到一個錯誤,只是說「400」和我以前修復它的解決方案已經到位 – Vbasic4now

+1

您的循環看起來很好,有點非常規,因爲if語句只是做一些可以直接在循環語句。但它不應該給你任何錯誤,並應該在細胞等於「」時破裂,就像你想要的那樣。 – gtwebb