2017-07-26 191 views
0

我努力在Excel上編寫宏代碼。任何幫助非常感謝:)Excel VBA - 如何選擇範圍下降到第一個空白單元格

目前我的代碼選擇'留下記錄'中的範圍C6:C10,並在B2中插入'舊記錄',將所有單元格向下移動。我想做的事情完全一樣,但不是複製C6:C10,而是想將B2'記錄中的所有單元格從B2複製到列B中的第一個空白單元格。

這是我擁有的代碼(其中複製C6:C10):

Sub CopyToFirstBlankCell() 
Dim bookingWS As Worksheet, mainWS As Worksheet 
Dim copyRng As Range 

Set bookingWS = Sheets("Leaves Records") 
Set mainWS = Sheets("Old Records") 
Set copyRng = bookingWS.Range("C6:C10") 

mainWS.Range("B2:B" & copyRng.Rows.Count + 1).Insert Shift:=xlDown 
copyRng.Copy mainWS.Range("B2") 
End Sub 

謝謝!

+0

你在其他有信息拷貝的細胞簡單的代碼「離開記錄」中的單元格? – paulinhax

+0

是的,我需要它選擇和複製列B,從B2到第一個空白單元格(不包括空白單元格)。 @paulinhax – Knargle

回答

0

如果我理解正確的話,你可以嘗試這樣的事:

Sub CopyToFirstBlankCell() 
Dim bookingWS As Worksheet, mainWS As Worksheet 
Dim copyRng As Range 
Dim lastrow As Long 

Set bookingWS = Sheets("Leaves Records") 
Set mainWS = Sheets("Old Records") 

lastrow = bookingWS.Cells(Rows.Count, "B").End(xlUp).Row 

Set copyRng = bookingWS.Range("B2:B" & lastrow) 

mainWS.Range("B2:B" & copyRng.Rows.Count + 1).Insert Shift:=xlDown 
copyRng.Copy mainWS.Range("B2") 
End Sub 
+0

完美!謝謝:) – Knargle

+0

@Knargle不客氣。很高興它幫助:) – paulinhax

0

這裏,直到它在空的:)

Dim i As Integer 
i = 2 
Do While Not IsEmpty(Sheets("Leaves Records").Cells(i, 2)) 'it'll iterate through B column 
    Sheets("Old Records").Cells(i, 2).Value = Sheets("Leaves Records").Cells(i, 2).Value 
    i = i + 1 
Loop 
相關問題