標題:
[發問]
(已解決)有辦法依文字內容給予顏色嗎
[打印本頁]
作者:
freeffly
時間:
2011-3-11 12:35
標題:
(已解決)有辦法依文字內容給予顏色嗎
本帖最後由 freeffly 於 2012-2-22 17:05 編輯
[attach]4958[/attach]
我想要問依下有辦法經由vba設定判別有利的那幾各字為藍色不利的那幾各字為紅色
如附加檔的所顯示的那樣嗎
只判斷C12:D12 ,C13:D13,f12:G12,F13:G13這幾各區域
作者:
Hsieh
時間:
2011-3-11 14:04
回復
1#
freeffly
Sub nn()
Dim A As Range
For Each A In Union([C12:C13], [F12:F13])
A.Font.ColorIndex = 0
ar = Split(A, "萬")
For i = 0 To UBound(ar)
If InStr(ar(i), "~") > 0 Then
mystr = Split(ar(i), "~")(1)
k = InStr(A, mystr)
c = IIf(c = 3, 5, 3)
A.Characters(k, Len(mystr) + 1 + i * 2).Font.ColorIndex = c
End If
Next
Next
End Sub
複製代碼
作者:
freeffly
時間:
2011-3-11 21:15
回復
2#
Hsieh
每次看到大大解答都相當佩服
大大這次用的幾各含數還是第一次看到
有幾句可以抽空幫忙解釋一下
或是全部注解(我怕自己誤用)
下面這句後面(1) 作用是什麼?
mystr = Split(ar(i), "~")(1)
下面這句裡面的括號代表顏色嗎?
c = IIf(c = 3, 5, 3)
下面這句看不太懂
Characters(k, Len(mystr) + 1 + i * 2)
=c是指套用c=IIF(c=3,5,3)的顏色嗎?
.Font.ColorIndex = c
作者:
Hsieh
時間:
2011-3-11 21:35
回復
3#
freeffly
下面這句後面(1) 作用是什麼?
mystr = Split(ar(i), "~")(1)
Split會將字串以指定字元分割成一個以0開始的陣列,後面(1)就表示指定到該陣列的第2個元素
下面這句裡面的括號代表顏色嗎?
c = IIf(c = 3, 5, 3)
c變數用來運算字串要給的顏色,3是紅,5是藍
下面這句看不太懂
Characters(k, Len(mystr) + 1 + i * 2)
儲存格內指定字元k是指從第k個字元開始,擷取Len(mystr) + 1 + i * 2的字數
=c是指套用c=IIF(c=3,5,3)的顏色嗎?
.Font.ColorIndex = c
Font:字型
ColorIndex:顏色號碼
作者:
freeffly
時間:
2011-3-12 23:40
回復
4#
Hsieh
謝謝解說
作者:
freeffly
時間:
2012-9-14 10:51
回復
4#
Hsieh
請問如果是如附件我要依"-"去做判斷
-的左邊字要紅色且粗體要怎麼改?
因為-的左邊跟右邊的字數不是固定
一般函數可以用mid去做不過在vba中就不太知道如何改
[attach]12486[/attach]
作者:
Hsieh
時間:
2012-9-14 15:28
回復
6#
freeffly
這樣就應該清楚流程了
Sub ex()
Dim A As Range
For Each A In Range([A1], [A65536].End(xlUp))
x = InStr(A, "-") '分格符號位置
If x > 0 Then
k = Len(Split(A, "-")(0)) '左側字元數
i = Len(Split(A, "-")(1)) '右側字元數
With A.Characters(1, k).Font '左側字型
.Bold = True
.ColorIndex = 3 '紅色
End With
With A.Characters(x + 1, i).Font '右側字型
.Bold = True '粗體
.Italic = True '斜體
.ColorIndex = 5 '藍色
End With
End If
Next
End Sub
複製代碼
作者:
freeffly
時間:
2012-9-14 17:13
回復
7#
Hsieh
感覺多這一個例子
有比較清楚相關運用
真是感謝
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)