返回列表 上一主題 發帖

[發問] Excel VBA 儲存格字體變色事宜(不同序頁無法變色)

[發問] Excel VBA 儲存格字體變色事宜(不同序頁無法變色)

使用軟體:Excel 2003 SP3

各位先進好
  小弟在Excel的VBA中寫了兩行程式,是關於Excel儲存格內的字體變色事宜。(用If.....Then的語法)
令小弟不解的是,這兩行程式在該檔的Sheet3執行是可行的(圖1),但在該檔的Sheet1執行卻不行!(圖2)

註:粉紅色框為程式語法。

圖1



圖2



以上,請各位先進不吝指教,祝平安順心。
錢是很寂莫的,所以會想辦法聚在一起!

回復  syuan
試試看
GBKEE 發表於 2012-10-26 17:48



感謝大大無私分享,非常受用!
For Each A In Sheets("Sheet1").UsedRange

Each
USeRange
這兩個用法小弟愚昧懇請大大解說!

TOP

回復 14# GBKEE


感謝GBKEE大
那個INSTR的語法,小弟已有依您提供的方式試出。
現小弟正試著將這個語法來帶入自己正在研究的小程式中。
錢是很寂莫的,所以會想辦法聚在一起!

TOP

回復 13# syuan
看你的圖片:  程式碼不完整
  1.     Option Explicit
  2. Sub Ex()
  3.     Dim A As Range
  4.     For Each A In Sheets("Sheet1").UsedRange.Range("C:C")
  5.         If InStr(A, "DOS*") Then A.Font.Color = vbRed
  6.     Next
  7. End Sub
複製代碼

TOP

回復 12# GBKEE

回覆GBKEE大

  小弟試了您提供的方式,但儲存格內的字串並無變色(如下圖)

   

小弟有查了LIKE的說明,發現它似乎是用來對照字串用的(如下圖)



以上,謝謝!
錢是很寂莫的,所以會想辦法聚在一起!

TOP

回復 11# syuan
沒錯的.
LIKE 也可比對字串
  1. 四式 分別 執行看看  
  2.     If A   LIKE  "DOS" Then A.Font.Color = vbRed
  3.     If A   LIKE  "DOS*" Then A.Font.Color = vbRed
  4.     If A   LIKE  "*DOS" Then A.Font.Color = vbRed
  5.     If A   LIKE  "*DOS*" Then A.Font.Color = vbRed
複製代碼

TOP

回復 10# GBKEE


    感謝GBKEE大

小弟依您提供的語法來修改小弟的語法後,已能成功變更字的顏色(如下圖){:3_59:}



不過小弟發現就算儲存格的字改為DOSXXX 後,仍然能成功變色。

也就是說這個寫法僅搜查符合DOS開頭的字串就變色,而如果DOS字串後有加別的字就忽略。

不知小弟這樣的想法是否正確?
錢是很寂莫的,所以會想辦法聚在一起!

TOP

回復 9# syuan
試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim A As Range
  4.     For Each A In Sheets("Sheet1").UsedRange
  5.         If InStr(A, "DOS") Then A.Font.Color = vbRed
  6.     Next
  7. End Sub
複製代碼

TOP

回復 7# luhpro


    回luhpro 大

小弟試了您建議的1、2、3、4項的方式後,的確出現如您所說的現象。

真是萬分感謝~~

另外,小弟近日發現了range有個叫usedrange屬性,它可以去抓取使用中的儲存格範圍。

小弟試了一下這個屬性,它可以選取儲存格的所有範圍。

不過小弟在語法中加了一個Instr的語法,打算讓程式依條件來讓儲存格內的字變色,

但不管如何改,它就是只會變數字的顏色而已,無法選到其他儲存格內的字(如下圖1)

(圖1)   原本要讓儲存格內的dos字串變紅色,但程式卻讓儲存格內的數字1變紅色(Instr(1.......)


(圖2)  將語法修改後也是改到儲存格內的數字4  (小弟改為Instr(4.......)


從以上的結果看來,它似乎是針對數字在變更,而不是依字串在變更......=="

這讓小弟覺得很困惑,不知是不是小弟的語法有錯。

望各位先進不吝指教,謝謝。

祝週末愉快!
錢是很寂莫的,所以會想辦法聚在一起!

TOP

回復 7# luhpro


感謝luhpro大的解說,小弟先去試看看您說的那幾項。{:3_52:}

註:原來if語法不適合用在這種情況啊,我還真不知道....=="
錢是很寂莫的,所以會想辦法聚在一起!

TOP

        靜思自在 : 人生不一定球球是好球,但是有歷練的強打者,隨時都可以揮棒。
返回列表 上一主題