Board logo

標題: 有沒有任何辦法鎖死整個活頁薄字體 (新細明體 + Arial) [打印本頁]

作者: jakcy1234    時間: 2013-9-8 11:33     標題: 有沒有任何辦法鎖死整個活頁薄字體 (新細明體 + Arial)

有沒有任何辦法鎖死整個活頁薄字體 (新細明體 + Arial) ?

因每次用任何方法貼上都改用了  (細明體 + Times New Roman)
作者: GBKEE    時間: 2013-9-8 14:02

回復 1# jakcy1234
是這樣嗎?

[attach]15982[/attach]
作者: jakcy1234    時間: 2013-9-8 15:16

回復 2# GBKEE

這個我知道, 如果用 新細明體 英文字也跟隨 新細明體
但是我就偏偏改用 標準字型為 Arial  (為什麼我要這樣呢? 因為我要將 英文及數字做 Arial )
因為我 貼上的資料 是包含 中文字及數字 (如下資料) , 可惜的是 中文字 變了 細明體..............
細明體 有不好處的地方 就是將字體擴闊 ,  還有如果 再覆蓋貼上 也會變了全部都是 細明體(中英數)

(如下資料)
更新:28/08/2012 14:42     <~~~~~~~~~ 要鎖死為  中文為 新細明體    英數為 Arial
最後:28/08/2012 14:49

而我知道 C:\WINDOWS\Fonts   ( 細明體 & 新細明體 MINGLIU.TTC  ) 電腦設定為  細明體 是 ~~~>  "首選先"
作者: GBKEE    時間: 2013-9-8 16:02

回復 3# jakcy1234
試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim C As Range, i As Integer
  4.     For Each C In ActiveSheet.UsedRange
  5.         For i = 1 To Len(C)
  6.             If Asc(Mid(C, i, 1)) >= 0 And Asc(Mid(C, i, 1)) <= 255 Then
  7.                 C.Characters(Start:=i, Length:=i).Font.Name = "Arial"
  8.             Else
  9.                 C.Characters(Start:=i, Length:=i).Font.Name = "新細明體"
  10.             End If
  11.         Next
  12.     Next
  13. End Sub
複製代碼

作者: jakcy1234    時間: 2013-9-8 19:05

回復 4# GBKEE
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     Dim rCell As Range

  3.             Application.EnableEvents = False
  4.         For Each rCell In Target
  5.             If Len(rCell.Text) > 1 Or _
  6.               Val(rCell.Value) > 1 Then
  7.                 rCell.Font.Name = "Arial"

  8.             Else
  9.                 rCell.Font.Name = "Arial"

  10.             End If
  11.         Next
  12.         Application.EnableEvents = True

  13. End Sub
複製代碼
謝謝你回答~~
我找了以上方法, 將excel option 設定回 新細明體 再用以上語句 Private Sub Worksheet_Change,
基本上跟平常 貼上沒分別(以萬個cell), 還發現 比較 我手動改字體的時間還快,   可能是 "覆蓋貼上的時間" 快過 "手動改自體的時間"
作者: jakcy1234    時間: 2013-9-8 19:26

問題出現了  不能undo..........
作者: GBKEE    時間: 2013-9-8 20:33

回復 5# jakcy1234
  1. If Len(rCell.Text) > 1 Or   Val(rCell.Value) > 1 Then
  2.                rCell.Font.Name = "Arial"
  3.             Else
  4.                 rCell.Font.Name = "Arial"
  5.            End If
複製代碼
這程式碼不管有無 IF 判斷式,都是執行 rCell.Font.Name = "Arial"
作者: jakcy1234    時間: 2013-9-8 21:42

回復 7# GBKEE

但是我刪減了語句後就沒有轉了 Arial
作者: GBKEE    時間: 2013-9-9 07:52

回復 8# jakcy1234
這不與你5#的程式碼一樣?
  1. Option Explicit
  2. Private Sub Worksheet_Change(ByVal Target As Range)
  3.     Dim rCell As Range
  4.     Application.EnableEvents = False
  5.     For Each rCell In Target
  6.         rCell.Font.Name = "Arial"           ' 一樣的 字型
  7.         '********************************************************
  8.         'If Len(rCell.Text) > 1 Or Val(rCell.Value) > 1 Then   '*
  9.          '       rCell.Font.Name = "Arial"  ' 一樣的 字型      '*
  10.         'Else                                                  '*
  11.         '        rCell.Font.Name = "Arial"  ' 一樣的 字型      '*
  12.         'End If                                                '*
  13.         '********************************************************
  14.     Next
  15.     Application.EnableEvents = True
  16. End Sub
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)