簡體   English   中英

VBA Excel 將整個行的內部顏色填充到最后使用的列

[英]VBA Excel filling up interior color for Entirerow just to the last used column

我正在嘗試用顏色填充我的行,直到最后使用的列。

我試過了:

 For i = 2 To lRow
 If ActiveSheet.Range("O" & i).Value = "FULL" Then
 ActiveSheet.Range ("O" & i), Cells(lCol).Interior.Color = RGB(155, 255, 0)
 ElseIf ActiveSheet.Range("O" & i).Value = "NEW" Then
 ActiveSheet.Range("O" & i).EntireRow.Interior.ColorIndex = 33
 End If
 Next

但我收到"Application defined or object-defined error"

此代碼是基於條件的。 當要找到值“FULL”或“NEW”直到最后一行時,必須突出顯示具有該值的行。 問題是,我不想使用整個行屬性,因為這種顏色永遠可見。 我只需要將.interior.Color 屬性限制為我使用的最后一列。

我怎樣才能做到這一點?

我找到了其他一些解決方案,我試圖從那里解決這個問題,但徒勞無功。

如何 select 第二行到最后一行的范圍在此處輸入圖像描述

如何找到包含數據的最后一列?

首先,我們需要正確定義lcol

Dim wo 作為工作表 Dim lCol as Long

然后始終將我們的工作表設置為優先級

  Set wo = ThisWorkbook.ActiveSheet

  lCol = wo.UsedRange.Columns(wo.UsedRange.Columns.Count - 14).Column

然后,定義我們的最后一列。

我放了-14,這意味着最后14列不會受到影響,按照這里的解釋:

ActiveSheet.UsedRange.Columns.Count - 8 是什么意思?

接下來我的代碼應該是這樣的:

For i = 2 To lRow
If ActiveSheet.Range("O" & i).Value = "FULL" Then
ActiveSheet.Range("A" & i).Resize(1, lCol).Interior.Color = RGB(155, 255, 0)
ElseIf ActiveSheet.Range("O" & i).Value = "NEW" Then
ActiveSheet.Range("O" & i).EntireRow.Interior.ColorIndex = 33
End If
Next

參考第一列 A 而不是“O”,從中提取過濾值。

您可以在這里找到另一種方式:

https://www.thespreadsheetguru.com/blog/2014/7/7/5-different-ways-to-find-the-last-row-or-last-column-using-vba

暫無
暫無

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

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