EXCELVBA:“;太多不同的单元格格式“有没有办法在宏中删除或清除这些格式?
因此,我制作了一个有趣而简单的宏,随机选择R、G和B值,直到它使用每种可能的组合(跳过重复),并使用每种新颜色设置10x10正方形的颜色值 唯一的问题是我遇到了单元格格式数量的限制,但我发现在Excel 2013的空白工作簿上,它正好是65429 我包含了一个清晰的格式代码,但似乎没有效果:EXCELVBA:“;太多不同的单元格格式“有没有办法在宏中删除或清除这些格式?,vba,excel,cell-formatting,Vba,Excel,Cell Formatting,因此,我制作了一个有趣而简单的宏,随机选择R、G和B值,直到它使用每种可能的组合(跳过重复),并使用每种新颜色设置10x10正方形的颜色值 唯一的问题是我遇到了单元格格式数量的限制,但我发现在Excel 2013的空白工作簿上,它正好是65429 我包含了一个清晰的格式代码,但似乎没有效果: Cells(X, Y).ClearFormats 微软列出了一些解决方案,但其中3/4基本上是“不要制作太多格式”,第4种格式是使用第三方应用程序 在VBA中真的没有什么可以做的吗 A1:J10将打印
Cells(X, Y).ClearFormats
微软列出了一些解决方案,但其中3/4基本上是“不要制作太多格式”,第4种格式是使用第三方应用程序
在VBA中真的没有什么可以做的吗
- A1:J10将打印新颜色
- K1将打印完成百分比
- L1将打印使用的颜色数
- M1将打印颜色组合重复的次数
Dim CA(255, 255, 255) As Integer Dim CC As Long Dim RC As Long Dim R As Integer Dim G As Integer Dim B As Integer Dim X As Integer Dim Y As Integer CC = 0 RC = 0 X = 1 Y = 1 Do While ColorCount < 16777216 R = ((Rnd * 256) - 0.5) G = ((Rnd * 256) - 0.5) B = ((Rnd * 256) - 0.5) If CA(R, G, B) <> 1 Then CA(R, G, B) = 1 'Step down to the next row 'If at the 10th row, jump back to the first and move to the next column If X < 10 Then X = X + 1 Else X = 1 If Y < 10 Then Y = Y + 1 Else Y = 1 End If End If Cells(X, Y).ClearFormats 'doesn't do what I hope :( Cells(X, Y).Interior.Color = RGB(R, G, B) CC = CC + 1 Cells(1, 11).Value = (CC / 16777216) * 100 Cells(1, 12).Value = CC Else RC = RC + 1 Cells(1, 13).Value = RC End If Loop
Dim CA(255,255,255)作为整数 如长 如长 作为整数的Dim R 作为整数的Dim G 作为整数的Dim B 作为整数的Dim X Dim Y作为整数 CC=0 RC=0 X=1 Y=1 当颜色计数<16777216时执行此操作 R=((Rnd*256)-0.5) G=((Rnd*256)-0.5) B=((Rnd*256)-0.5) 如果CA(R,G,B)1那么 CA(R,G,B)=1 “下到下一排 '如果在第10行,请跳回到第一行并移到下一列 如果X<10,则 X=X+1 其他的 X=1 如果Y<10,则 Y=Y+1 其他的 Y=1 如果结束 如果结束 Cells(X,Y).ClearFormats'不符合我的期望:( 单元格(X,Y).Interior.Color=RGB(R,G,B) CC=CC+1 单元格(1,11)。值=(CC/16777216)*100 单元格(1,12)。值=CC 其他的 RC=RC+1 单元格(1,13)。值=RC 如果结束 环
- 有几种方法可以解决这个问题,但最干净、最简单的方法是删除所有额外的样式(我见过9000多种样式的工作簿)
使用以下简单的VBA代码,您可以删除所有非内置样式,在大多数情况下,这会修复错误
Sub removeStyles()
Dim li as long
On Error Resume Next
With ActiveWorkbook
For li = .Styles.Count To 1 Step -1
If Not .Styles(li).BuiltIn Then
.Styles(li).Delete
End If
Next
End With
End Sub
事实上,我不知道这个问题的解决方案是什么。但是你在哪里更新<代码> CultCube < /Cord>?颜色数组(“CA”)保存256x256x256条目。如果CA(R,G,B)没有设置为1,那么将它设置为1(考虑使用它)。然后,将单元格的背景颜色设置得低一点:单元格(x,y)。