太多不同的单元格格式。循环总是停在相同的索引处。 VBA

时间:2015-07-31 11:14:05

标签: excel vba excel-vba

我知道这个问题已经出现好几次,但我相信我的问题略有不同。

我的目标是出于视觉原因将每个第二行的颜色格式化为excel表格。代码如下:

lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
lC = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
For i = 2 To lastRow
        On Error GoTo skipColor
        Set rng = ws.Range(ws.Cells(i, 1).Address, ws.Cells(i, lC).Address)
        rng.Interior.ThemeColor = xlThemeColorDark1
        If i Mod 2 = 0 Then
            rng.Interior.TintAndShade = -4.99893185216834E-02
        Else
            rng.Interior.TintAndShade = -0.249977111117893
        End If
skipColor:
        Debug.Print Err.Description
Next i

循环的迭代总是在完全相同的行停止。似乎Excel缓存已满,无法保存更多单元格格式。我尝试了这个post的解决方案(第二个答案)并将其用于循环的每次迭代。没有成功。

还有一件事:即使我添加了On Error Goto skipColor行,它仍会显示错误消息。

编辑:我在错误消息上点击调试时突出显示的行是:rng.Interior.ThemeColor = xlThemeColorDark1

2 个答案:

答案 0 :(得分:0)

您没有正确捕获错误。因为您已放置标签

skipColor:

在循环内部,即使没有错误,也会点击Debug.Print

答案 1 :(得分:0)

根据Microsoft知识库文章You receive a "Too many different cell formats" error message in Excel,您似乎已超出允许的不同单元格格式数。

来自文章:

  

<强>原因

     

当工作簿包含多个时,会发生此问题   Excel中约有4,000种不同的单元格格式组合   2003或更高版本的Excel 2007或64,000。组合定义为a   应用于单元格的唯一一组格式元素。一个   组合包括所有字体格式(例如:字体,字体   边框(例如:位置,大小,斜体,粗体和下划线)   重量和颜色),单元格图案,数字格式,对齐方式和   细胞保护。

     

注意:如果两个或多个单元格共享完全相同的格式,则使用   一种格式组合。但是,如果有任何差异   在单元格之间进行格式化,每个单元格使用不同的组合。

     

在Excel样式中,在工作簿之间复制时,计数可能会增加   因为复制了自定义样式。

     

可以在Excel 2007和Excel中打开具有4,000多种样式的工作簿   更高(因为格式化限制增加)但结果   在Excel 2003中出错。

“解决方案”部分提供了一个名为XLStylesTool的工具的链接,该工具可以帮助您清理工作簿。