VBA错误'无法更改合并单元格的一部分'

时间:2014-09-10 15:37:45

标签: excel excel-vba vba

VBA错误有问题"无法更改合并单元格的一部分"

这是我的代码。它清除第一张纸上的范围,然后隐藏原始样品表。然后循环清除工作簿中未隐藏的工作表上的范围,因为它们的格式完全相同。此代码仅在我进入所有工作表并清除合并单元格的任何格式时才有效。我需要在许多工作簿上运行此代码,因此必须这样做非常耗时,或者我必须在清除范围之前添加代码以清除用户格式。

sheets("Raw Samples").select
Range("A9:AB3000").select
selection.clearcontents
activewindow.selectedsheets.visible = False

dim ws as worksheet
for each ws in activeworkbook.worksheets
ws.range("B3:G342").clearContents
next ws

activeworkbook.sheets("Raw Samples").visible = true

我的问题是

  1. for next循环是否仍会检查隐藏工作表上的格式?
  2. 有没有办法解决不得格式化工作表但仍然清除指定的范围?

1 个答案:

答案 0 :(得分:0)

  

Q1。下一个循环是否仍然检查隐藏工作表上的格式?

不,它没有

  

Q2。有没有办法解决必须取消格式化工作表但仍然清除指定的范围?

是。这是你在尝试什么?

Sub Sample()
    Dim ws As Worksheet
    Dim rng As Range
    Dim boolHidden As Boolean

    For Each ws In ActiveWorkbook.Worksheets
        If ws.Name <> "Raw Samples" Then
            Set rng = ws.Range("B3:G342")

            If ws.Visible = False Then
                boolHidden = True
                ws.Visible = True
            End If

            Application.Goto Reference:=rng
            Selection.ClearContents

            If boolHidden = True Then
                ws.Visible = False
                boolHidden = False
            End If
        End If
    Next ws
End Sub