0

我试图通过宏编写一些条件格式。我想在我的 excel 电子表格中评估 E 行中的值。对于 1 的所有值,我想将整行更改为不同的格式。这是我到目前为止所拥有的。

我有一个 COUNTA 来计算行数(显示在 H5 中)。我有一个 COUNTIF(E:E,1) 来计算以 1 作为该列值的行数(显示在 G5 中)。到目前为止,这是我的代码。

Sub Macro1()
'*****************
'Declare variables
'*****************
Dim xlWB, xlApp, xlSheet As Object
Dim xlTest As Worksheet
Dim RowNumber, TotalNumber, Count, i, j As Integer
Dim aCell, aRow As Excel.Range
Dim oInteger As Object
Dim oString As Object
'*****************
'Set variables
'*****************
i = 0
Range("G5").Select
Count = ActiveCell.Value
Range("H5").Select
TotalNumber = ActiveCell.Value
'*****************
'For loop to format
'*****************
For i = 2 To TotalNumber
    If ("E" & i = 1) Then
        MsgBox ("Doing something")
    End If
Next i
End Sub

我输入了一个 MsgBox,发现 ("E" & i) 显示为 'E1'、'E2' 等。所以这似乎是正确的。这个; 但是,从不匹配 1 的值。我需要比较该单元格中的值不是单元格编号。我不知道如何指定所选单元格的值。

任何帮助表示赞赏。谢谢。

4

1 回答 1

0

您需要将“E”和 i放入一个范围以引用单元格,否则您只会产生类似“E3”的东西,它永远不会是 =1。另外,尽量不要使用 select,它会减慢您的代码速度并且没有必要。

Sub Macro1()
'*****************
'Declare variables
'*****************
Dim TotalNumber as Integer, Count as Integer, i as Integer
'*****************
'Set variables
'*****************
Count = Range("G5").Value
TotalNumber = Range("H5").Value
'*****************
'For loop to format
'*****************
For i = 2 To TotalNumber
    If (Range("E" & i).Value = 1) Then
        MsgBox ("Doing something")
    End If
Next i
End Sub
于 2013-10-14T13:02:42.900 回答