我試圖創建一個宏,它將比較標記爲「Requisition Number」和「PO#」的兩欄中單元格的值在前一行中的單元格。如果單元格相同,我希望線條突出顯示相同的顏色。下面是我的代碼:當試圖根據單元格的值更改文本顏色時出現「下標超出範圍」錯誤
Sub changeTextColor()
Dim Color As Integer
Color = 5
'Get number of rows in the specified column
RowsCount = Range("A1", Range("A1").End(xlDown)).Rows.Count
Dim colReq As Range
Dim colPO As Range
With ActiveSheet.UsedRange.Rows(1)
Set colReq = .Find(What:="Requisition Number", LookAt:=xlWhole, MatchCase:=False, SearchFormat:=False)
Set colPO = .Find(What:="PO #", LookAt:=xlWhole, MatchCase:=False, SearchFormat:=False)
End With
'Select cell
ActiveSheet.Cells(1, colReq.Column).Select
'Loop the cells
For x = 1 To RowsCount
If (ActiveCell.Value = ActiveSheet.Cells(ActiveCell.Row + 1, ActiveCell.Column).Value) And _
ActiveSheet.Cells(ActiveCell.Row, colPO.Column).Value = ActiveSheet.Cells(ActiveCell.Row+1, colPO.Column).Value Then
ActiveCell.EntireRow.Font.ColorIndex = Color
ActiveCell.EntireRow+1.Font.ColorIndex = Color
Else
Color = Color + 5
End If
ActiveCell.Offset(1, 0).Select
Next
End Sub
我在我的下面幾行代碼收到錯誤「下標越界」,而我不知道如何解決它?
ActiveCell.EntireRow.Font.ColorIndex = Color
ActiveCell.EntireRow+1.Font.ColorIndex = Color
您需要了解有關調試的信息。瀏覽你的代碼並檢查你的變量的值。您不檢查是否找到值(colPO)。如果活動單元格是第1行,則會因爲沒有行零而出錯。 – SJR
當你到達那條線時,你肯定有'colPO'範圍嗎?另外,我**高度**建議學習[如何避免使用'.Select' /'.Activate'](https://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in- excel-vba-macros) – BruceWayne
如果你在第1行,你會得到一個錯誤,因爲'ActiveCell.Row - 1'返回一個'0'並且沒有第0行。 – braX