如何清除合并单元格的内容

时间:2015-10-16 11:20:18

标签: excel vba excel-vba

我正在尝试从单元格中清除内容,但其中一些已合并,因此我收到错误

  

1004:“我们不能这样做来合并细胞”

For l = 4 To 9
    If ws.Cells(j, l).Interior.ColorIndex = 19 Then
         ws.Range(j, l).ClearContents  'Error here
    End If
Next l 

使用.Cells的另一次尝试仍会返回错误

    For l = 4 To 9
        If ws.Cells(j, l).Interior.ColorIndex = 19 Then
             ws.Cells(j, l).ClearContents  'Error here
        End If
    Next l 

7 个答案:

答案 0 :(得分:11)

您需要Cells而不是Range

ws.Cells(j, l).ClearContents

糟糕 - 忘了合并的位:

        If Cells(j, l).MergeCells Then
            Cells(j, l).MergeArea.ClearContents
        Else
            Cells(j, l).ClearContents
        End If

答案 1 :(得分:1)

尝试

ws.Range(j, l).Select
Selection.ClearContents

为我工作。

答案 2 :(得分:0)

您还可以创建宏并使用快捷键(ctrl + m),这样您就可以选择要合并并清除的单元格。这是代码:

Sub Macro1()
'
' Macro1 Macro
'
' Keyboard Shortcut: Ctrl+m
'
    With Selection
        .HorizontalAlignment = xlGeneral
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        If .MergeCells = True Then
            .MergeCells = False
        Else
            .MergeCells = True
        End If
    End With
End Sub

答案 3 :(得分:0)

试试

Range("A1:A20").Value = ""

无论单元格是否合并,这每次都有效。

答案 4 :(得分:-1)

如果工作表名称.Range(“ cell no”)。MergeCells然后 工作表名称.Range(“单元格编号”).MergeArea.ClearContents 其他 工作表名称.Range(“单元格编号”).ClearContents 如果结束

答案 5 :(得分:-1)

我遇到了同样的问题,可以按照以下说明解决:

ws.Range("D10:F1000") = vbNullString

更改范围并使其适应您的问题。它支持范围区域中的合并单元格。

答案 6 :(得分:-3)

尝试使用

ws.Range(j,l).Clearcontents