我正在尝试从单元格中清除内容,但其中一些已合并,因此我收到错误
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
答案 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