Excel VBA:如何创建宏以使用if语句更改文本颜色
这是以下问题的继续: 为了防止条件格式失控,我决定将其转换为VBA中的代码。我决定从小处着手,从将一种条件格式转换为VBA开始 说明: 在O列中有一系列数字,从不同的表格中获得。用户在F列中输入数字。例如,如果F9中的数字小于O9,字体颜色将变为红色。若并没有,数字保持正常。公式应从第9行开始,可以继续向下,并且应该是自动的。 这意味着在F列输入数字时,字体颜色应立即改变 以下是我迄今为止创建的代码:Excel VBA:如何创建宏以使用if语句更改文本颜色,vba,excel,Vba,Excel,这是以下问题的继续: 为了防止条件格式失控,我决定将其转换为VBA中的代码。我决定从小处着手,从将一种条件格式转换为VBA开始 说明: 在O列中有一系列数字,从不同的表格中获得。用户在F列中输入数字。例如,如果F9中的数字小于O9,字体颜色将变为红色。若并没有,数字保持正常。公式应从第9行开始,可以继续向下,并且应该是自动的。 这意味着在F列输入数字时,字体颜色应立即改变 以下是我迄今为止创建的代码: Sub change_color() With Me.Range("f9", Range("
Sub change_color()
With Me.Range("f9", Range("f" & Rows.Count).End(xlUp)) 'so the formula will carry onwards from f9 onwards
If f9 < o9 Then
Range(f).Font.Color = vbRed
End If
End With
End Sub
Sub change\u color()
使用Me.Range(“f9”,Range(“f”和Rows.Count).End(xlUp)),因此公式将从f9开始
如果f9
但遗憾的是,它没有起作用。我还试着把它链接到一个按钮上,但什么也没发生。我还记得删除旧的条件格式。有什么我遗漏的吗?您想要的是下面的代码 此代码只需运行一次,它将在工作表中的整个“F”列中删除,并更改所有实例的字体 常规模块代码
Option Explicit
Sub change_color()
Dim LastRow As Long, i As Long
With Worksheets("Sheet1") ' modify to your sheet's name
LastRow = .Cells(.Rows.Count, "F").End(xlUp).Row
For i = 1 To LastRow
If .Range("F" & i).Value < .Range("O" & i).Value Then
.Range("F" & i).Font.Color = vbRed
Else
.Range("F" & i).Font.Color = vbBlack
End If
Next i
End With
End Sub
这对你有用吗
Option explicit
Sub ChangeColor()
With thisworkbook.worksheets(YOURSHEETNAME) 'Replace with sheet name as per your workbook.'
Dim LastRow as long
Lastrow = .cells(.rows.count,"F").end(xlup).row
Dim RowIndex as long
For rowindex = 9 to LastRow
If .cells(rowindex,"F").value2 < .cells(rowindex,"O").value2 then
.cells(rowindex,"F").font.color = vbred
End if
Next rowindex
End With
End Sub
选项显式
子ChangeColor()
使用此工作簿。工作表(您的工作表名称)“根据您的工作簿替换为工作表名称。”
最后一排一样长
Lastrow=.cells(.rows.count,“F”).end(xlup).row
变暗,变长
对于rowindex=9到最后一行
如果.cells(行索引,“F”).value2<.cells(行索引,“O”).value2,则
.cells(行索引,“F”).font.color=vbred
如果结束
下一行索引
以
端接头
在工作表模块中没有使用Me
,它会自动将该工作表称为ActiveSheet
,您可以使用Me删除,并且它可以在移动设备上以同样的方式工作,未经测试。我并没有摆脱With,只是改变了它返回的对象,所以我认为所有的。应该可以。你认为
前缀放在哪里错了?我看这里没有明显的错误@ShaiRado@eirikdaude你说得对,注释被删除了,我错过了他用这个工作簿替换的行。工作表(你的工作表名)
Sweet。工作起来很有魅力。我不得不使用常规的模块代码,因为另一个似乎不适合我。我的代码中已经有一个工作表更改模块,所以我只是使用call函数来执行任务。谢谢。现在再重复11次。。。
Option explicit
Sub ChangeColor()
With thisworkbook.worksheets(YOURSHEETNAME) 'Replace with sheet name as per your workbook.'
Dim LastRow as long
Lastrow = .cells(.rows.count,"F").end(xlup).row
Dim RowIndex as long
For rowindex = 9 to LastRow
If .cells(rowindex,"F").value2 < .cells(rowindex,"O").value2 then
.cells(rowindex,"F").font.color = vbred
End if
Next rowindex
End With
End Sub