簡體   English   中英

VBA:特定值中的顏色單元格,具體取決於值

[英]VBA: Color cells in a certain column, depending on value

今天,我不得不第一次與VBA打交道。 經過大約2個小時的研究,我放棄了並最終提出了這個問題,這很容易理解:

在我的excel Pivot上,我搜索具有特定標題“ Percentage”的列。 找到此列后,我要根據單元格的顏色為其着色。 (> 1綠色,<0.9紅色,<1 und> = 0.9黃色)

到目前為止,我找到了該列(因為它並不總是同一列,所以我必須搜索它)。 但是,當我想訪問單元格的值后,我收到類型不匹配錯誤(13)

Sub test()
Dim x As Range
    Cells.Find(What:="Percentage", After:=ActiveCell, LookIn:=xlFormulas _
        , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate

    For Each x In ActiveCell.EntireColumn
        If x.Value > 1 Then
            x.Interior.ColorIndex = 10
        End If
    Next x
End Sub

如您所見,我遍歷該列。 這已經錯了嗎?

希望我能正確解釋我的問題,並期待有所幫助

不幸的是,遍歷ActiveCell.EntireColumn不會返回每個單元格,它只會返回一個Range ,即整個列。 嘗試按索引循環:

Sub test()
    Dim columnNumber As Long
    columnNumber = Cells.Find(What:="Percentage", After:=ActiveCell, LookIn:=xlFormulas _
        , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Column
    Dim i As Long
    For i = 1 To ActiveSheet.UsedRange.Rows.Count
        If Cells(i, columnNumber).Value > 1 Then
            Cells(i, columnNumber).Interior.ColorIndex = 10
        End If
    Next i
End Sub

您應該遍歷:
ActiveCell.EntireColumn.Cells
另一方面,遍歷整個列似乎不是一個好主意,您應該嘗試使用Jordan提到的條件格式,或者嘗試檢索表所使用的范圍。

多謝您的回覆。 我嘗試使用條件formattig來執行此操作,但是由於我的列位置每月更改一次,是否有可能?

@bobajob我嘗試運行您的代碼,但是在這里遇到typemissmatch(13)錯誤:

 If Cells(i, columnNumber).Value > 1 Then 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM