excel表格中输入的数字与文字自动转换成已设定格式

比如在一个格内输人“21楼A单元”,21和A显示为黑体字,楼和单元显示为宋体... 比如在一个格内输人“21楼A单元”,21和A显示为黑体字,楼和单元显示为宋体 展开
 我来答
mfkinfo
2015-07-09 · TA获得超过6348个赞
知道大有可为答主
回答量:4553
采纳率:83%
帮助的人:912万
展开全部

只能使用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

cfzzj007
2015-07-09 · TA获得超过5364个赞
知道大有可为答主
回答量:7931
采纳率:78%
帮助的人:1471万
展开全部
这个用VBA,也就是宏代码可以做到。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式