Sub set_color() Dim r As Range, arr For Each r In Range("A:QE") arr = Split(r, ",") r.Font.Color = RGB(CInt(arr(0)), CInt(arr(1)), CInt(arr(2))) Next End Sub报错 本工作簿不能出现其他新字体
时间: 2023-08-10 08:08:52 浏览: 108
这个错误可能是因为你的代码中尝试使用了一个未安装的字体,从而导致了这个问题。你可以尝试使用以下代码来设置字体颜色:
```
Sub set_color()
Dim r As Range, arr
For Each r In Range("A:QE")
arr = Split(r, ",")
r.Font.Color = RGB(CInt(arr(0)), CInt(arr(1)), CInt(arr(2)))
Next
Set r = Nothing
End Sub
```
这个代码在循环中设置了每个单元格的字体颜色,并在结束时将范围对象设置为 `Nothing`,以释放内存和避免其他问题。如果你仍然遇到问题,请检查字体是否正确安装,并尝试使用默认字体来解决问题。
相关问题
Sub set_color() Dim r As Range, arr For Each r In Range("A:QE") arr = Split(r, ",") r.Interior.Color = RGB(CInt(arr(0)), CInt(arr(1)), CInt(arr(2))) Application.Wait (Now + TimeValue("0:00::00.1")) Next End Sub完善代码
这段代码的作用是将 A 列到 QE 列中每个单元格中以逗号分隔的 RGB 值转换为颜色,并将其应用于单元格的背景色。
在完善代码方面,我有以下几点建议:
1. 在代码前添加注释,解释代码的作用和用途。
2. 将代码放在一个子过程中,以便在需要时可以轻松调用它。
3. 添加错误处理程序,以避免在代码执行时出现错误并导致程序崩溃。
4. 删除 `Application.Wait` 行,因为它会导致程序暂停,而不是在后台运行。
以下是完善后的代码:
```
'将 RGB 值转换为颜色并应用到单元格背景色中
Sub SetColor()
On Error GoTo ErrorHandler '添加错误处理程序
Dim r As Range, arr() As String '声明变量
For Each r In Range("A:QE")
arr = Split(r, ",")
r.Interior.Color = RGB(CInt(arr(0)), CInt(arr(1)), CInt(arr(2)))
Next
Exit Sub '正常退出子过程
ErrorHandler: '错误处理程序
MsgBox "Error: " & Err.Description '显示错误消息
End Sub
```
Sub set_color() Dim r As Range, arr For Each r In Range("A:QE") arr = Split(r, ",") r.Font.Color = RGB(CInt(arr(0)), CInt(arr(1)), CInt(arr(2))) Next End Sub 报错 1004 本工作薄不能再使用其他新字体
这个错误通常发生在代码中尝试设置一个不存在于计算机上的字体时。可以尝试在代码中添加一个字体设置,如下所示:
```
Sub set_color()
Dim r As Range, arr
'设置使用的字体
Application.ScreenUpdating = False
Application.EnableEvents = False
With ThisWorkbook
.Styles.Add "TempStyle" '添加一个新样式
.Styles("TempStyle").Font.Name = "Arial" '设置字体为Arial
End With
For Each r In Range("A:QE")
arr = Split(r, ",")
r.Font.Color = RGB(CInt(arr(0)), CInt(arr(1)), CInt(arr(2)))
r.Font.Name = "TempStyle" '将字体设置为刚才添加的样式
Next
'删除使用的样式
With ThisWorkbook
.Styles("TempStyle").Delete
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
```
这里添加了一个名为“TempStyle”的新样式,并将其字体设为Arial。在代码中处理完毕后,删除该样式。这样可以避免在代码中设置无法识别的字体而导致的错误。
阅读全文