非常简单的excel vba宏。在单元格中指定值

时间:2013-10-10 18:26:18

标签: excel vba

我试图通过宏写一些条件格式。我想在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.我需要比较 中的值而不是单元格数。我不知道如何指定所选单元格的值。

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

1 个答案:

答案 0 :(得分:0)

你需要把“E”&我进入一个范围来引用单元格,否则你只会产生类似“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