返回列表 上一主題 發帖

[發問] Office VBA,在範圍內搜尋有無刪除線並變色

回復 3# 蒼雪

貴式以最後一個字是否有刪除線決定反紅?


若是其中一字有刪除線就反紅,可參考如下
Sub test0()
    Dim c As Range, x As Long, S%
    For Each c In Range("a1:k30") 'Range("o4:w181")
        S = 0
        For x = Len(c.Value) To 1 Step -1
            If c.Characters(x, 1).Font.Strikethrough Then S = S + 1
        Next
        If S > 0 Then
            c.Interior.Color = rgbRed
        Else
            c.Interior.Color = rgbWhite
        End If
    Next
End Sub
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 5# 蒼雪

貴式判斷是由尾至頭每個判斷,所以最後第一個字變成控制是否要反紅的控制,
你可以測試刪除線是第二個字以後
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 7# 蒼雪

抱歉,我想問的是

S%的部份是在處理文字需要第幾個?
若是判斷文字第2個,則 改成 S=S+2,這樣嗎?
則 If S>0 改成 >1?


S = S +1 , 累加計算一條文字中有幾個字有刪除線,
當S=0時表示沒有字沒有刪除線,若S>0表示一條文字中有幾個字有刪除線。


貴程式是檢查每個字就做一次文字反白反紅處理,所以處理比較久一點。
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

        靜思自在 : 忘功不忘過,忘怨不忘恩。
返回列表 上一主題