如果当前单元格在 VBA 中为空,则获取相邻单元格的值

Posted

技术标签:

【中文标题】如果当前单元格在 VBA 中为空,则获取相邻单元格的值【英文标题】:Get value of the adjacent cell if current cell is empty in VBA 【发布时间】:2016-06-01 08:13:30 【问题描述】:

如果当前单元格为空,是否可以使用 VBA 复制相邻单元格的值?

此处示例:

如果我遍历 A 列的单元格并且一个单元格为空,则将 B 列的相邻单元格的值复制到 A 列中的空单元格。

这应该是我生成的报告:

【问题讨论】:

【参考方案1】:

试试这个:

Sub Demo()
    Dim rng As Range
    Dim lastRow As Long
    Dim cell as Range

    lastrow = Cells(Rows.Count, "A").End(xlUp).Row
    Set rng = Range("A1:A" & lastrow)
    For Each cell In rng
        If cell.Value = "" Then
            cell.Value = cell.Offset(0, 1).Value
        End If
    Next cell
End Sub

【讨论】:

【参考方案2】:

你可以试试这个

Sub main()    
    With ActiveSheet.UsedRange.Columns("A")
        If WorksheetFunction.CountBlank(.Cells) > 0 Then
            .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=RC[1]"
            .Value = .Value
        End If
    End With    
End Sub

【讨论】:

这也很棒!谢谢【参考方案3】:
Sub movecells()

Dim usedrows As Integer
Dim tmpval As String
Dim i As Integer

usedrows = UsedRange.Rows.Count

For i = 1 To usedrows Step 1

    If Cells(i, 1).Value = "" And Cells(i, 2).Value <> "" Then

        Cells(i, 1).Value = Cells(i, 2).Value
        Cells(i, 2).Value = ""
    End If
Next i
End Sub

【讨论】:

以上是关于如果当前单元格在 VBA 中为空,则获取相邻单元格的值的主要内容,如果未能解决你的问题,请参考以下文章

excel中怎样用vba使单元格在特定条件下才可以编辑?

如何将两列与数据合并,如果一列的单元格为空,则相邻的单元格已满?

Excel VBA代码用相邻(列)单元格替换空单元格

如果单元格 <> 单元格在上方,则条件格式

用户表单包含需要为常用值自动完成的单元格

为啥`border-collapse:collapse`会导致相邻单元格在未绘制时具有顶部边框