✔ 最佳答案
細階英文變成大階
公式是 =Upper(text)
VBA 是 Ucase(text)
但題目說, 要成個file的細階英文變成大階, 那就問題非常大了。
要知道, Upper 或 Ucase 都是 文字處理函數, 結果是會傳來文字格式的。
如盲目用此兩個函數加于整個file, 很多WorkSheet, 無數的儲存格上, 除非file內所有data都是純文字格式, 完全沒有公式, 數字, 日期, 貨幣 甚至空格, 否則該file 會有災難性的破壞。
如用公式 Upper函數, 你祇能選擇是純文字的data每格做, 或每堆做, 然後再用貼上值的方法。
但如果該file是很大, 有很多WorkSheets, 及無數data及不同format, 用UPPER公式是無法解決了。
祇有用VBA, 在 Ucase函數的指令前, 先加上其他函數的指令, 祇針對文字格式而不含公式的儲存格, 才執行Ucase函數。
現假設該file的Worksheet上的資料範圍, 全部都不超過A1: Z1000, 我剛寫了個VBA, 就算有100張WorkSheet都可以一次過完成:
Sub UcaseX()
Dim sht As Worksheet
Dim X As Range
For Each sht In ActiveWorkbook.Worksheets
sht.Select
For Each X In Range(“A1:Z1000”)
If TypeName(X.Value) = “String” And X.HasFormula = False Then
X.Value = UCase(X.Value)
End If
Next X
Next sht
End Sub
我剛測試過, 是OK的
注意: VBA 內的 String, 不可打成 string 或 STRING
如你不選擇全部WorkSheet一次過完成, 而選擇每次做一張Worksheet, VBA是:
For Each X In Range(“A1:Z1000”)
If TypeName(X.Value) = “String” And X.HasFormula = False Then
X.Value = UCase(X.Value)
End If
Next X