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

Vba 如何清除合并单元格的内容,vba,excel,Vba,Excel,我试图从单元格中清除内容,但其中一些单元格被合并,因此我得到了错误 1004:“我们不能对合并的单元格执行此操作” 再次尝试使用.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 试用 ws.Range(j,l

我试图从单元格中清除内容,但其中一些单元格被合并,因此我得到了错误

1004:“我们不能对合并的单元格执行此操作”

再次尝试使用
.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 
试用

ws.Range(j,l).Clearcontents

您需要
单元格
而不是
范围

ws.Cells(j, l).ClearContents
Oops-忘记合并位:

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

还有一件事,您可以创建宏并使用快捷键(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
试一试

为我工作。

如果工作表名称。范围(“单元格编号”)。则合并单元格 工作表名称.范围(“单元号”).MergeArea.ClearContents 其他的 图纸名称。范围(“单元号”)。ClearContents
如果我有相同的问题,并且可以按照以下说明解决,则结束:

ws.Range("D10:F1000") = vbNullString
更改范围并使其适应您的问题。它支持在范围区域中合并单元格。

请尝试

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

无论单元格是否合并,每次都可以使用。

您必须循环遍历每个单元格。合并单元格是魔鬼的工作。最初是这样的,然后我改为范围,看看它是否有效,然后也没有work@GordonBell不,没有。这是无效的
工作表.Range
语法。啊,我的错误,ws.Range(“NamedRange”).MergeArea.ClearContents有效。哦,我知道你现在做了什么。很好的更新。问题可能是您要求excel清除合并单元格中单个单元格的内容,我现在不知道如何解决。很抱歉
ws.Range("D10:F1000") = vbNullString
Range("A1:A20").Value = ""