我对 VBA 非常陌生,无法理解如何在一个循环中完成 2 个任务。我非常感谢您的帮助。
我已经能够根据第 3 列中的数据更改第 2 列中的数值,但我不明白如何将负值的字体更改为红色。
表格的大小每月都会根据每月的天数而变化(如果这很重要的话)。谢谢!
Dim AQRng As Range, Cel As Range, p_AQend As Object
Set p_AQend = Range("AQ2").End(xlDown)
Set AQRng = Range("AQ2", p_AQend)
For Each Cel In AQRng
If Cel.Value <> 0 Then
If Cel.Offset(0, 1).Text = "Negative" Then
Cel.Value = Abs(Cel.Value) * -1
ElseIf Cel.Offset(0, 1) <> "Negative" Then
Cel.Value = Abs(Cel.Value)
End If
End If
Next Cel
最佳答案
试试这个:
Sub Test()
Dim rng As Range, cl As Range
Set rng = Range("AQ2:QA" & Range("A2").End(xlDown).Row)
For Each cl In rng
If cl.Value <> 0 Then
If cl.Offset(0, 1) = "Negative" Then
cl = Abs(cl) * -1
cl.Font.Color = vbRed
Else
cl = Abs(cl)
End If
End If
Next cl
End Sub
关于VBA 循环根据相邻单元格更改单元格值(正/负)和字体颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50878281/