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本工作薄不能再使用其他新字体
时间: 2023-08-10 12:08:52 浏览: 144
这个错误可能是因为你在代码中尝试使用了一个当前工作簿无法识别的字体。你可以尝试在代码的开头添加以下语句来使用当前工作簿中已有的字体:
```
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
Dim wb As Workbook: Set wb = ThisWorkbook
Dim ws As Worksheet: Set ws = wb.Worksheets("Sheet1")
Dim fontName As String: fontName = ws.Cells(1, 1).Font.Name
```
其中 `"Sheet1"` 应替换为你当前使用的工作表名称。然后,在你更改字体颜色的代码中,将 `.Font` 改为 `.Font.Name = fontName`,如下所示:
```
For Each r In Range("A:QE")
arr = Split(r, ",")
r.Font.Name = fontName
r.Font.Color = RGB(CInt(arr(0)), CInt(arr(1)), CInt(arr(2)))
Next
```
最后,添加以下代码以恢复原始设置:
```
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
```
这应该能够解决你遇到的问题。
阅读全文