Sub set_color() Dim r As Range, arr For Each r In Range("A:Z") arr = Split(r, ",") r.Interior.Color = RGB(CInt(arr(0)), CInt(arr(1)), CInt(arr(2))) r.Cells.Font.Color = RGB(CInt(arr(0)), CInt(arr(1)), CInt(arr(2))) Next End Subb报错
时间: 2023-08-02 20:05:41 浏览: 105
你的代码最后一行 `End Subb` 多了一个字母 "b",应该改为 `End Sub`。此外,你在使用 `Split` 函数时,应该将 `r.Value` 作为参数传入,而不是 `r`。修改后的代码应该如下:
```
Sub set_color()
Dim r As Range, arr
For Each r In Range("A:Z")
arr = Split(r.Value, ",")
r.Interior.Color = RGB(CInt(arr(0)), CInt(arr(1)), CInt(arr(2)))
r.Cells.Font.Color = RGB(CInt(arr(0)), CInt(arr(1)), CInt(arr(2)))
Next
End Sub
```
相关问题
Sub set_color() Dim r As Range, arr For Each r In Range("A:QE") arr = Split(r, ",") r.lnterior.Color = RGB(Clnt(arr(0)), Clnt(arr(1)), Clnt(arr(2))) Next End Sub Clnt子函数未定义
是的,这个代码缺少了一个自定义的子函数 `Clnt` 的定义。我猜测 `Clnt` 函数的作用是将字符串转换为数字。你可以在代码前面添加以下子函数定义:
```
Function Clnt(str As String) As Long
Clnt = CLng(Trim(str))
End Function
```
这个函数实现了将字符串转换为数字的操作,并返回了该数字。你可以将这个函数添加到你的代码中,并重新运行你的程序。
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报错 本工作簿不能出现其他新字体
这个错误可能是因为你的代码尝试在工作簿中添加新的字体,而该字体并未在工作簿中定义。你可以尝试使用现有字体,或者首先添加新字体并确保它们在工作簿中可用。
如果你想使用现有字体,可以在代码中指定字体名称,例如:
```
r.Font.Name = "Arial"
```
如果你想添加新字体,可以使用以下代码:
```
Dim myFont As Font
Set myFont = ThisWorkbook.Fonts.Add("My New Font")
```
这将添加名为"My New Font"的新字体。然后,你可以在代码中使用此字体,例如:
```
r.Font.Name = "My New Font"
```
确保在完成工作后删除不再需要的字体,以避免工作簿变得过于臃肿。你可以使用以下代码删除字体:
```
ThisWorkbook.Fonts("My New Font").Delete
```
阅读全文