【问题标题】:Get values of cell row beside it only otherwise have a blank cell & formula获取它旁边的单元格行的值,否则只有一个空白单元格和公式
【发布时间】:2017-07-06 01:10:43
【问题描述】:

有没有办法最好通过 excel 公式和 VBA 来获取它旁边的单元格,如果没有值返回空白?如果有一个值返回给定的数字。空白,因为其中没有数据,甚至没有 =A1

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

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

  Sub CopyCol()

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

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

End Sub 

谢谢。

【问题讨论】:

  • 您是否尝试将B列的数字格式更改为;;; (三个分号) ? B 列仍会存储您的公式,但不会显示其值。
  • @RomcelGeluz 我是否尝试过将数字格式更改为 ;;;在excel中?我刚刚尝试过,它看起来只是为所有 B 列单元格返回空白,但公式保持不变。我想要 =A1 之类的东西,如果左侧的单元格中没有值,那么它就不会给出公式和空白
  • 你真的需要 VBA 来完成这个任务。给我一两分钟试试看。

标签: vba excel excel-formula


【解决方案1】:

使用这个:

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

【讨论】:

    猜你喜欢
    • 2021-04-27
    • 1970-01-01
    • 1970-01-01
    • 2017-02-22
    • 1970-01-01
    • 1970-01-01
    • 2018-03-22
    • 1970-01-01
    • 2017-02-06
    相关资源
    最近更新 更多