获取单元格行旁边的值,否则只有一个空白单元格&式

时间:2017-07-06 01:10:44

标签: vba excel-vba excel-formula excel

是否有一种方法最好通过excel公式,而且还有VBA来获取它旁边的单元格,如果没有值,则返回空白?如果有一个给定数字的值返回。空白,因为它没有数据甚至没有a = A1

在一个例子中 A列的公式为每行1,2,3,向下。在B列中我有公式,它获取它旁边的值(A1,A2等),但它只显示为空白,公式仍然存在。

我也知道如何简单地复制和粘贴特殊内容,这可能被视为一种解决方法,但我很好奇是否有更好的方法可以做到这一点。

  Sub CopyCol()

        Sheets("Sheet3").Columns(10).Copy

        Sheets("Sheet3").Columns(10).PasteSpecial xlPasteValues

End Sub 

感谢。

1 个答案:

答案 0 :(得分:0)

使用此:

Option Explicit

Public Sub CopyCol()
    Dim ur As Range, col1 As Variant, col2 As Variant, r As Long

    Set ur = ThisWorkbook.Sheets("Sheet3").UsedRange

    ur.Columns("B").Clear
    col2 = ur.Columns("B")
    col1 = ur.Columns("A")

    If Not IsEmpty(col1) Then
        If IsArray(col1) Then
            For r = 1 To UBound(col1)
                If Len(col1(r, 1)) > 0 Then col2(r, 1) = col1(r, 1)
            Next
        Else
            col2 = col1
        End If
        ur.Columns("B") = col2
    End If
End Sub