返回列表 上一主題 發帖

[發問] (已解決)有辦法依文字內容給予顏色嗎

回復 1# freeffly
  1. Sub nn()
  2. Dim A As Range
  3. For Each A In Union([C12:C13], [F12:F13])
  4. A.Font.ColorIndex = 0
  5.   ar = Split(A, "萬")
  6.   For i = 0 To UBound(ar)
  7.      If InStr(ar(i), "~") > 0 Then
  8.         mystr = Split(ar(i), "~")(1)
  9.         k = InStr(A, mystr)
  10.         c = IIf(c = 3, 5, 3)
  11.         A.Characters(k, Len(mystr) + 1 + i * 2).Font.ColorIndex = c
  12.      End If
  13.   Next
  14. Next
  15. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 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:顏色號碼
學海無涯_不恥下問

TOP

回復 6# freeffly
這樣就應該清楚流程了
  1. Sub ex()
  2. Dim A As Range
  3. For Each A In Range([A1], [A65536].End(xlUp))
  4. x = InStr(A, "-") '分格符號位置
  5.    If x > 0 Then
  6.       k = Len(Split(A, "-")(0)) '左側字元數
  7.       i = Len(Split(A, "-")(1)) '右側字元數
  8.       With A.Characters(1, k).Font '左側字型
  9.       .Bold = True
  10.       .ColorIndex = 3 '紅色
  11.       End With
  12.       With A.Characters(x + 1, i).Font '右側字型
  13.       .Bold = True '粗體
  14.       .Italic = True '斜體
  15.       .ColorIndex = 5 '藍色
  16.       End With
  17.     End If
  18. Next
  19. End Sub
複製代碼
學海無涯_不恥下問

TOP

        靜思自在 : 君子如水,隨方就圓,無處不自在。
返回列表 上一主題