【问题标题】:VBA Excel: Function not working on combined cellsVBA Excel:函数不适用于组合单元格
【发布时间】:2021-11-27 05:56:55
【问题描述】:

我遇到了组合单元格的问题。

组合了以下范围:G42:Q42、G43:Q43 等等,直到 G47:Q47

当单元格没有按照上面描述的方式组合时,这段代码可以正常工作,但是当单元格被合并时,我无法让它工作

For Each cell In ventas.Range("G42:G47")
   If (cell.Value = "") Then cell.ClearContents
Next

我试过了,但是没用:

For Each cell In ventas.Range("G42:Q47")
   If (cell.Value = "") Then cell.ClearContents
Next

【问题讨论】:

    标签: excel vba merge


    【解决方案1】:

    试试这个

    
    Sub clearRange()
    Dim c As Range
    
    For Each c In ventas.Range("G42:Q47").Cells
        If c.MergeCells = True Then
            If c.MergeArea.Cells(1, 1) = "" Then c.MergeArea.ClearContents
        Else
            If c.Value = "" Then c.ClearContents
        End If
    Next
    
    End Sub
    
    

    代码检查单元格是否是合并的一部分,然后仅适用于第一个单元格。 处理合并的单元格可能非常棘手。

    【讨论】:

      【解决方案2】:

      组合单元格也可以作为单个单元格寻址。

      假设我结合 C3:G7 我可以运行

      ActiveWorkbook.Sheets(1).Cells(3, 3).Value = "test"
      

      单元格将显示“test” 您可以在左上角查找单元格的名称

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-11
        • 2021-05-10
        • 1970-01-01
        • 2021-09-28
        相关资源
        最近更新 更多