作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因此,我制作了一个有趣且简单的宏,随机选择 R、G 和 B 值,直到它使用所有可能的组合(跳过重复),并使用每种新颜色设置 10x10 正方形的颜色值。
唯一的问题是我遇到了单元格格式数量的限制。 Microsoft says that the limit should be around 64000 ,但我发现在 Excel 2013 的空白工作簿上它恰好是 65429。
我已经包含了清晰的格式代码,但它似乎没有效果:
Cells(X, Y).ClearFormats
微软列出了一些解决方案,但其中 4 个解决方案中的 3 个本质上是“不要制作太多格式”,而第 4 个格式是使用第三方应用程序。
VBA真的无能为力吗?
<小时/>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
最佳答案
有多种方法可以解决此问题,但最干净、最简单的方法是删除所有额外的样式(我见过具有 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
关于vba - Excel VBA : "Too many different cell formats" - Is there a way to remove or clear these formats in a Macro?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38447629/
我是一名优秀的程序员,十分优秀!