【问题标题】:when value of Variant is empty assign value in another Variant当 Variant 的值为空时,在另一个 Variant 中赋值
【发布时间】:2022-07-19 02:33:16
【问题描述】:

我正在尝试使 range(cells(1,1), cells(10,1) 在 Range AAA 中具有值,当 AAA 中的值为空时,它在 Range BBB 中显示值。但我得到的结果只有范围 BBB 在给定范围内。

例如:

  • 当 AAA(1) = 12345 时,单元格 (1,1) = 12345
  • 当 AAA(2) = 空时,Cells(2,1) = BBB(2) = 54321
With Activesheet
    Range(cells(1,1), cells(10,1) = AAA
    If Range(cells(1,1), cells(10,1) = \"\" Then
     Range(cells(1,1), cells(10,1) = BBB
    End if
End With

    标签: vba variant


    【解决方案1】:

    迭代AAA 并将空白替换为BBB 中的相应值,然后应用数组:

    Dim i As Long
    For i = LBound(AAA, 1) To UBound(AAA, 1)
        If AAA(i, 1) = "" Then AAA(i, 1) = BBB(i, 1)
    Next i
    With ActiveSheet
        .Range(.Cells(1, 1), .Cells(10, 1)) = AAA
    End With
    

    如果您不想修改AAA,则创建第三个数组并将其用于输出:

    Dim CCC As Variant
    CCC = AAA
    
    Dim i As Long
    For i = LBound(AAA, 1) To UBound(AAA, 1)
        If AAA(i, 1) = "" Then CCC(i, 1) = BBB(i, 1)
    Next i
    With ActiveSheet
        .Range(.Cells(1, 1), .Cells(10, 1)) = CCC
    End With
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-22
      • 1970-01-01
      • 1970-01-01
      • 2014-01-25
      相关资源
      最近更新 更多