Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 将值复制到下一个空单元格_Vba_Excel - Fatal编程技术网

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

Vba 将值复制到下一个空单元格,vba,excel,Vba,Excel,我想找到空单元格并复制这些值: 值:“2017年11月10日”和“是”应复制到第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).V

我想找到空单元格并复制这些值:

值:“2017年11月10日”和“是”应复制到第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

我的循环出现了问题,我不知道如何修复它。

在找到一个空的行之前,无需在您的行中循环。可以使用以下内容替换整个子组件:

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

我会这样做:

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递增它,在这一行你写下
B3
C3
值。

删除
退出子项
?太好了,放在哪里:带Selection.Borders(xlEdgeLeft)。LineStyle=xlContinuous End with???@4est,请参阅更新--您可以如上所述将边框应用于目标范围如果B6可以为空,则需要
xlUp
,而不是
xlDown
--我已更新以允许出现这种情况。