【问题标题】:VBA Cell Offset Replaces Previous Cell ValueVBA 单元格偏移替换以前的单元格值
【发布时间】:2020-12-16 11:07:59
【问题描述】:

VBA 合并单元格/偏移属性出现问题。我想浏览一个包含合并单元格的列表并显示每个合并单元格的范围。

示例:

  • 范围(“A1”)。值为“地址”

  • 范围(“A2:A50”)是一个合并单元格,其值为“xyz@hotmail.com”

当我运行以下代码时:

  • 问题 1:Range ("A1").Value 转换为 "xyz@hotmail.com"
  • 问题 2:偏移后,MergeArea.Address 仍然返回 Range ("A1") 而不是 Range ("A2:A50")

我的代码:

Sub Macro1()

   Dim CellA As Range    
   Set CellA = Range("A1")

   Do Until IsEmpty(CellA.Value) = True

    If CellA.MergeCells = False Then    
     CellA = CellA.Offset(1, 0)    
    Else   
     CellA = CellA.Offset(1, 0)   
     MsgBox (CellA.MergeArea.Address)
    End If

   Loop

End

【问题讨论】:

  • 首先不鼓励使用合并单元格和VBA,您可以格式化不需要合并的单元格吗?如果不是,则关于合并区域的每个函数都针对左上角的单元格

标签: excel vba


【解决方案1】:

试试这个代码:

Sub Macro1()
Dim CellA As Range
Set CellA = Range("A1")
        
Do Until IsEmpty(CellA.Value) = True '
    If CellA.MergeCells Then         '
        MsgBox CellA.MergeArea.Address
        exit do
    End If
    Set CellA = CellA.Offset(1, 0)
Loop
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-06
    • 2022-08-19
    • 2013-11-02
    • 2013-08-25
    • 1970-01-01
    相关资源
    最近更新 更多