EXCEL里的分数, 怎样实现同一单元格内的不同字体大小

2024-12-28 09:39:04
推荐回答(5个)
回答1:

提供给你下面的宏,但是有几点需要注意一下,下面的宏只是把A列中的分数形式,按照你的要求改写到B列中。因为我不清楚你的具体格式,只是知道你想做什么。这个宏会遍历A列中所有符合条件的判断。判断是这样的。如果数据有“/”则表示有分数,那么进行下一步判断,如果没有空格,则判断为纯分数,直接以8号字体填写到B列,如果有空格则进行拆分,把整数部分和分数部分分开来。然后以你要求10号字体和8号字体填写到B列中,如果没有“/”则直接以10号字体填写到B列中。另外提一下,你的提供的样本中整数部与分数部中间还不止一个空格,不过程序也会自动处理掉,只是麻烦了一下。

重要的是,你把分数从别处粘贴到Excel中的话,先把A列及B列的格式设置为文本,因为如果不是文本格式 Excel显示的是1 1/2,然而实际值确是1.5,因此我转换后填到B列就变成1.5了,所以,这点一定要注意。如果你的数据原来就在Excel了,直接改格式势必会让把1 1/2变成1.5,先把它粘到记事本里,改了格式后再粘回到Excel中。记住,这点很重要。

Sub Trans()
Dim Acdoc As Worksheet
Set Acdoc = ThisWorkbook.ActiveSheet
Dim I, Loc As Integer
Dim Str, Str1 As String
I = 1
Do Until Acdoc.Cells(I, 1) = ""
Str = Acdoc.Cells(I, 1)
If Strings.InStr(Str, "/") > 0 Then
If Strings.InStr(Str, " ") > 0 Then
Do
Str1 = Str
Str = Strings.Replace(Str, " ", "", , 1)
Loop Until Strings.InStr(Str, " ") = 0
Loc = Strings.InStr(Str1, " ")
Acdoc.Cells(I, 2) = Str
Acdoc.Cells(I, 2).Characters(1, Loc - 1).Font.Size = 10
Acdoc.Cells(I, 2).Characters(Loc, Len(Str)).Font.Size = 8
Else
Acdoc.Cells(I, 2) = Acdoc.Cells(I, 1)
Acdoc.Cells(I, 2).Font.Size = 8
End If
Else
Acdoc.Cells(I, 2) = Acdoc.Cells(I, 1)
Acdoc.Cells(I, 2).Font.Size = 10
End If
I = I + 1
Loop
End Sub

回答2:

只有文本格式的数据才能设置不同的字体及字号。

回答3:

哈哈 用VBA自己录一个 很简单 要用要单元格内的文字选中后调整字体
首先设单元格格式为文本 在2007中可以用单引号
然后选中文本中的字数
18是字体大小
ActiveCell.Characters(Start:=4, Length:=3).Font.Size = 18

Start:=4, Length:=3这个自己选 是选中你要改变的文字

回答4:

先点击所要单元格,在公式编辑栏中选中要变形的数字,再选中的数字上右键,然后单击设置单元格,再修改字体大小,然后加粗等操作。

回答5:

可以用vba遍历一下就可以了,困了,没心思编了