簡體   English   中英

EXCEL中每個單元格中限制部分的條件格式

[英]Conditional formatting for restricted part in each cell in EXCEL

假設我們有 3 個單元格,內容分別為“123(45)”、“456(67)”和“789(89)”。 是否可以僅根據它們的第一個值來格式化三個單元格,即 "123", "456", "789" ?

要說清楚:

在此處輸入圖片說明

假設我在每個單元格中的每個數字后面都有“(XX)”,如何仍然按照圖片所示進行格式化,

即 480 (XX), 7 (XX), 112 (XX)''''''''

如果單元格包含相同的模式,例如:123 (45)

那么您可以使用基於公式的選項的條件格式並輸入以下公式:

=NUMBERVALUE(LEFT(A1,3)) = 123 

或者

=NUMBERVALUE(LEFT(A1,3))=B1

B1 如果你想引用某個單元格的值

並進行所需的格式化

如果模式不一樣,但例如有些像:123 (45), 1234 (46) 那么:

=NUMBERVALUE(LEFT(A1,FIND(" ",A1)-1)) = 123

或者

=NUMBERVALUE(LEFT(A1,FIND(" ",A1)-1)) =B1

編輯

這樣做的簡單方法是:

在具有數據的列旁邊的另一列中放置此公式:

=NUMBERVALUE(LEFT(A1,FIND(" ",A1)-1))

然后您可以應用數據欄條件格式,在數據欄的條件格式選項中有一個復選框“僅顯示欄”,結果將是這樣的:

在此處輸入圖片說明

另一種方法是在另一列中放置公式:

=A1&"     "&REPT("|",NUMBERVALUE(LEFT(A1,FIND(" ",A1)-1))/5)

在此處輸入圖片說明

或這個

=A8&"     "&REPT("∙",NUMBERVALUE(LEFT(A8,FIND(" ",A8)-1))/5)

在此處輸入圖片說明

沒有其他簡單的方法可以導致數據欄條件格式不接受數組公式。

無論如何,您都可以使用工作表中的宏來執行此操作,其中包含數據復制並粘貼以下代碼:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim lRow As Long

Dim data As Range

Set data = ActiveSheet.Range("A:A")

If Not Intersect(Target, data) Is Nothing Then

lRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row

Dim arr() As Double

On Error Resume Next
For i = 1 To lRow

Set myrange = ActiveSheet.Range("A" & i)

ReDim Preserve arr(i)
arr(i) = Left(myrange, WorksheetFunction.Find(" ", myrange) - 1)


Next i

Dim MaxValue As Long

MaxValue = WorksheetFunction.Max(arr)

For i = 1 To lRow
Set myrange = ActiveSheet.Range("A" & i)

With myrange.Interior
  .Pattern = xlPatternLinearGradient
  .Gradient.Degree = 180
  .Gradient.ColorStops.Clear
End With
With myrange.Interior.Gradient.ColorStops.Add(1)
  .Color = RGB(13, 71, 161)
  .TintAndShade = 0
End With
With myrange.Interior.Gradient.ColorStops.Add(1 - (arr(i) / MaxValue))
  .Color = RGB(13, 71, 161)
  .TintAndShade = 1
End With

With myrange.Interior.Gradient.ColorStops.Add(0)
  .Color = RGB(255, 255, 255)
  .TintAndShade = 1
End With

Next i
End If
End Sub

因此,每次將新數據放入列中時,使用此代碼都會自動將其格式化,如下圖所示。 我已經測試過了,它的工作原理只是將它粘貼到您的工作表中,而不是粘貼到模塊中,然后根據您的需要更改范圍。

在此處輸入圖片說明

希望能幫助到你!

暫無
暫無

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

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