将值复制到下一个空单元格

我想find空单元格,并复制那里值:

在这里输入图像描述

值:“10/11/2017”和“是”应复制到第7行(colB和colC)。

我拥有的:

Sub add_value() Dim wbA As Workbook Dim wsA As Worksheet Set wbA = ActiveWorkbook Set wsA = wbA.Worksheets("Sheet1") Dim nrow As Long nrow = 6 Do Until wsA.Range("B" & nrow).Value = "" wsA.Range("B" & nrow).Value = wsA.Range("B3").Value wsA.Range("C" & nrow).Value = wsA.Range("C3").Value Exit Sub nrow = nrow + 1 Loop End Sub 

我的循环有什么问题,我不知道如何解决这个问题。

没有必要循环你的行,直到你find一个空的。 你可以用这个replace整个sub:

 Sub add_value() With ThisWorkbook.Worksheets("Sheet1") .Cells(.Rows.Count, "B").End(xlUp).Offset(1, 0).Resize(1, 2).Value = .Range("B3:C3").Value End With End Sub 

根据你的意见,也可以添加边界,你可以像这样重组代码:

 Sub add_value() Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets("Sheet1") With ws.Cells(ws.Rows.Count, "B").End(xlUp).Offset(1, 0).Resize(1, 2) .Value = ws.Range("B3:C3").Value .Borders(xlEdgeLeft).LineStyle = xlContinuous End With End Sub 

我会做这样的事情:

 Sub FindFirstEmptyValue() Dim lastRow As Long With Worksheets("Sheet1") lastRow = .Cells(.Rows.Count, 2).End(xlUp).Row + 1 .Cells(lastRow, 2) = .Range("B3").value .Cells(lastRow, 3) = .Range("C3").value End With End Sub 

它给你最后一行,你用1递增,在这一行你写B3C3值。