VBA 循环根据相邻单元格更改单元格值(正/负)和字体颜色

标签 vba excel

我对 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

enter image description here

最佳答案

试试这个:

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/

相关文章:

excel - *.xlsx 文件何时以及为何包含 *.bin 文件?

java - 如何删除 apache POI 单元格中字符串的整行基础

excel - 即使没有错误, "Line3:"的代码仍然会在 On Error GoTo Line3 上运行

excel - 将每个单元格的名称设置为其内容/值

function - Application.MacroOptions 和错误 1004

excel - 可变长度循环中的 VBA "subscript out of range"。找不到问题

excel - 如何通过单元格引用更新电源数据透视表过滤器?

excel - Excel中=和=+有什么区别

vba - 无法使用 VBA、Excel 在公式中添加 =

excel - 如何在excel中将数字转换为字符串