excel表格中输入的数字与文字自动转换成已设定格式
只能使用VBA宏代码扩展Excel功能实现:
一、创建一个宏,如图一。
二、给宏添加代码,见图二以及后附代码。
三、设置快捷键,方便调用,见图三。
四、选中要修改的单元格,按快捷键(如图所设为Ctrl+m)调用该宏对所选单元格里的字符进行设置,见效果图。
附:图一
附:图二
附:图三
附:效果图
附:宏代码
Sub chk()
Dim strKey$, arrKey, strCurKey$
Dim intKey%, dx%, intLengKey%
Dim intBgnPs%, intEndPs%, intSetLeng%, intTmp%, intTmpLen%
Dim strUnitVal$
Dim sc As Range
strKey = "小区,楼,单元,号" '分割关键字,根据需要修改
arrKey = Split(strKey, ",")
intKey = UBound(arrKey)
For Each sc In Selection
'纯数字时,将单元格数据转换为文本格式
' sc.NumberFormatLocal = "@"
'当前单元格数据及格式定义
strUnitVal = sc.Value
ln = Len(Trim(strUnitVal))
sc.FormulaR1C1 = strUnitVal
For dx = 0 To intKey
'设置字体的字符串在当前单元格字符串中的开始位置
If dx = 0 Then
intBgnPs = 1
Else
intBgnPs = intEndPs + intLengKey
End If
'识别关键字及长度
intTmpLen = intLengKey
strCurKey = arrKey(dx)
intLengKey = Len(strCurKey)
'字符串截取结束后一位
intTmp = intEndPs
intEndPs = InStr(1, strUnitVal, strCurKey)
If intEndPs <> 0 Then
'设置字体的字符串截取长度
intSetLeng = intEndPs - intBgnPs
'设置单元格内符合条件的字符串字体
'SheetCalculate.Shadow = strUnitVal
With sc.Characters(Start:=intBgnPs, Length:=intSetLeng).Font
.Name = "黑体" '设置字体
.Color = vbRed '设置颜色
End With
Else
intEndPs = IIf(intTmp = 0, 1, intTmp) '找不到当前关键字时,从上个关键字位置计算
intLengKey = intTmpLen
End If
Next dx
Next sc
Exit Sub
End Sub
广告 您可能关注的内容 |