如果我的len大于5,我想让我的字符串变成绿色。
这是我的代码。任何人都可以帮助我,我一直收到这个错误:
对象不支持此属性
Sub deme()
Dim lastrow As Long
Dim a As Integer
a = 1
Dim cc As String
Dim i As Long
lastrow = Worksheets("sheet1").Range("C1").End(xlDown).Row - 1
For i = a To lastrow
cc = Worksheets("sheet1").Range("C" & i)
If Len(cc) > 5 Then
Worksheets("sheet1").Character(cc, i).Font.Color = vbRed
End If
Next i
End Sub
答案 0 :(得分:0)
这一行会失败:
cc = Worksheets("sheet1").Range("C" & i)
因为Range()
返回一个范围而cc是一个字符串。
这一行会失败:
Worksheets("sheet1").Character(cc, i).Font.Color = vbRed
因为Character()
只接受一个参数。
尝试一下:
Sub deme()
Dim lastrow As Long
Dim a As Integer
Dim i As Long
lastrow = Worksheets("sheet1").Range("C1").End(xlDown).Row - 1
For i = 1 To lastrow
If Len(Worksheets("sheet1").Range("C" & i).text) > 5 Then
for a = 5 to Len(Worksheets("sheet1").Range("C" & i).text)
Worksheets("sheet1").range("C" & i).Character(a).Font.Color = vbRed
next
End If
Next i
End Sub
另外,请注意这一行:
Worksheets("sheet1").range("C" & i).Character(a).Font.Color = vbRed
将除前5个字符外的所有字符设置为红色。您的问题是要将它们设置为绿色,因此请改用vbGreen
。
如果要将整个单元格内容设置为绿色,请替换:
for a = 5 to Len(Worksheets("sheet1").Range("C" & i).text)
Worksheets("sheet1").range("C" & i).Character(a).Font.Color = vbRed
next
带
Worksheets("Sheet1").range("C" & i).font.color = vbGreen
答案 1 :(得分:0)
不是
Worksheets("sheet1").Character(cc, i).Font.Color = vbRed
我改变了
Worksheets("sheet1").Range("C" & i).Font.Color = vbRed
答案 2 :(得分:0)
VBA有.Font.Color = vbRed
和问题I want to make my string turn into green color if my len is bigger then 5
所以我建议,如果需要,使用录制宏,选择ColumnC和HOME>样式 - 条件格式,新规则...,使用公式确定要格式化的单元格,格式化此公式为真的值; :
=LEN(C1)>5
格式... ,字体,颜色:绿色,OK,OK(停止录制)。
如果长度超过5个字符,则格式化最后一个被占用的单元格。