簡體   English   中英

Excel VBA-如何選擇范圍縮小到第一個空白單元格

[英]Excel VBA - How to select Range down to first blank cell

我正在努力在Excel上為宏編寫代碼。 任何幫助,不勝感激:)

當前,我的代碼在“ Leaves Records”中選擇范圍C6:C10,並在“ Old Records”中的B2處插入,將所有單元格向下移動。 我想做完全相同的事情,但我不想復制C6:C10,而是要將“ Leaves Records”中的所有單元格從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

謝謝!

如果我正確理解,可以嘗試執行以下操作:

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

這是簡單的代碼,用於復制單元格,直到出現空單元格為止:)

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM