使用静态列和可变行范围更改字体颜色

时间:2018-01-26 19:06:16

标签: excel vba excel-vba

我正在努力寻找合适的语法来改变单元格的静态列范围(A:T)内的单元格的字体颜色,但是变量行。所有变量都已正确定义,这正是我写这行代码导致错误的方式。这是我目前的片段:

 If Sheets("InfoSheet").Range("BR21").Value = True Then
     Sheets("AcctTable").Range(Cells(iOutputRow, "A"), Cells(iOutputRow, "T")).Interior.ColorIndex = 3
 Else
     Sheets("AcctTable").Range(Cells(iOutputRow, "A"), Cells(iOutputRow, "T")).Interior.ColorIndex = 1
 End If

我也尝试了以下代码:

 If Sheets("InfoSheet").Range("BR21").Value = True Then
     Sheets("AcctTable").Range("A" & iOutputRow & ":" & "T" & iOutputRow).Font.Color = vbRed
 Else
     Sheets("AcctTable").Range("A" & iOutputRow & ":" & "T" & iOutputRow).Font.Color = vbBlack
 End If

但是,我也有错误。有什么见解吗?

更新:我的问题是我没有在这些代码行之前取消保护工作表。我仍然用各种各样的评论更新了我的代码,谢谢大家。

1 个答案:

答案 0 :(得分:0)

第一组代码唯一明显的问题是不恰当的对象:

With Sheets("AcctTable")
    If Sheets("InfoSheet").Range("BR21").Value = True Then
        .Range( .Cells(iOutputRow, "A"), .Cells(iOutputRow, "T")).Interior.ColorIndex = 3
    Else
        .Range( .Cells(iOutputRow, "A"), .Cells(iOutputRow, "T")).Interior.ColorIndex = 1
    End If
End With