Excel VBA - 如何选择范围向下到第一个空白单元格
Posted
技术标签:
【中文标题】Excel VBA - 如何选择范围向下到第一个空白单元格【英文标题】:Excel VBA - How to select Range down to first blank cell 【发布时间】:2017-07-26 12:18:32 【问题描述】:我正在努力为 Excel 上的宏编写代码。非常感谢任何帮助:)
目前我的代码在“Leaves Records”中选择范围 C6:C10 并在“Old Records”中的 B2 处插入,将所有单元格向下移动。我想做完全相同的事情,但我不想复制 C6:C10,而是想将“离开记录”中的所有单元格从 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
谢谢!
【问题讨论】:
Leave Records
的其他单元格中是否有信息?
是的,我需要它来仅选择和复制 B 列,从 B2 向下到第一个空白单元格(不包括空白单元格)。 @paulinhax
【参考方案1】:
如果我理解正确,你可以试试这样的:
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
【讨论】:
完美!谢谢:)【参考方案2】:这是复制单元格直到出现空单元格的简单代码:)
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
【讨论】:
以上是关于Excel VBA - 如何选择范围向下到第一个空白单元格的主要内容,如果未能解决你的问题,请参考以下文章