Excel 复制列数据而不复制空白单元格

Excel 复制列数据而不复制空白单元格,excel,vba,Excel,Vba,我有两列A和B 我想将A列数据复制到B列中。A列中有几个空白单元格,但这些空白单元格不应覆盖B列中的任何数据。只有包含数据的单元格才应复制到B列中 如何在VBA中实现这一点?这可能不是一个完整的解决方案,但可能会给您一些想法: Sub test() Dim R As Range Set R = Range("A:A").SpecialCells(xlCellTypeConstants, 23) R.Offset(0, 1).Value = R.Value End Sub

我有两列A和B

我想将A列数据复制到B列中。A列中有几个空白单元格,但这些空白单元格不应覆盖B列中的任何数据。只有包含数据的单元格才应复制到B列中


如何在VBA中实现这一点?

这可能不是一个完整的解决方案,但可能会给您一些想法:

Sub test()
    Dim R As Range
    Set R = Range("A:A").SpecialCells(xlCellTypeConstants, 23)
    R.Offset(0, 1).Value = R.Value
End Sub

如果列A中的数据包含计算值,则可能无法按预期工作。

由于您有条件粘贴,因此需要在此处循环。当且仅当A列不为空时,检查A列中的每个值,并将该值移到B列


问题的标题表明您将堆栈溢出视为一种编码服务,并且正在下订单。这不是它的工作原理。请阅读。我怀疑部分问题在于语言。原始问题的措辞似乎有点苛刻,许多读者对此产生了负面影响,因此投了反对票。我改写了它,使问题读得更清楚。最好是问一个明确的问题,而不是把问题隐藏起来。最好显示您的代码尝试。
Sub Jeeped()

Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
Dim lr As Long, i

lr = ws.Range("A" & ws.Rows.Count).End(xlUp).Row

For i = 2 To lr
    If ws.Range("A" & i) <> "" Then
        ws.Range("B" & i).Value = ws.Range("A" & i).Value
    End If
Next i

End Sub