急求:如何在Excel2007中利用VBA实现将选中区域的中文字体改成黑体,英文字体和数字改成Arial
很多朋友说先选黑体在选Arial就行了,可是遗憾的的是在我们公司的电脑上就是不行,在选了Arial后中文字体就变了,我到网上差了一段VBA如下:PrivateSubCom...
很多朋友说先选黑体在选Arial就行了,可是遗憾的的是在我们公司的电脑上就是不行,在选了Arial后中文字体就变了,我到网上差了一段VBA如下:
Private Sub CommandButton1_Click()
Dim str As String
Dim i As Integer
str = ActiveCell
With ActiveCell
For i = 1 To Len(str)
If Asc(Mid(str, i, 1)) < 0 Then
.Characters(i, 1).Font.Name = "黑体"
Else
.Characters(i, 1).Font.Name = "Arial"
End If
Next i
End With
End Sub
可是它每次只能改一个格子的
要是我想一下把选中区域的全部改了呢?不知道那个大侠帮帮我
急求~~ 展开
Private Sub CommandButton1_Click()
Dim str As String
Dim i As Integer
str = ActiveCell
With ActiveCell
For i = 1 To Len(str)
If Asc(Mid(str, i, 1)) < 0 Then
.Characters(i, 1).Font.Name = "黑体"
Else
.Characters(i, 1).Font.Name = "Arial"
End If
Next i
End With
End Sub
可是它每次只能改一个格子的
要是我想一下把选中区域的全部改了呢?不知道那个大侠帮帮我
急求~~ 展开
4个回答
展开全部
把原有的代码做一个修改,把活动单元格(With ActiveCell)变成所选范围(With Selection)。你在执行下面的按钮的之前,选择要更改的范围,即可
Private Sub CommandButton1_Click()
Dim str As String
Dim i As Integer
str = ActiveCell
' With ActiveCell
With Selection
For i = 1 To Len(str)
If Asc(Mid(str, i, 1)) < 0 Then
.Characters(i, 1).Font.Name = "黑体"
Else
.Characters(i, 1).Font.Name = "Arial"
End If
Next i
End With
End Sub
Private Sub CommandButton1_Click()
Dim str As String
Dim i As Integer
str = ActiveCell
' With ActiveCell
With Selection
For i = 1 To Len(str)
If Asc(Mid(str, i, 1)) < 0 Then
.Characters(i, 1).Font.Name = "黑体"
Else
.Characters(i, 1).Font.Name = "Arial"
End If
Next i
End With
End Sub
追问
不行,用了以后英文也变黑体了
追答
不会啊,你看一下我的附图,左上角的是原有格式,右下角是修改后的格式。
展开全部
还用那么复杂吗?
先将选中区域设置为汉字字体,如“仿宋”,再选中区域,设置英文字体“Arial”就可以了啊,汉字按汉字字体显示,英文、数字按Arial显示
先将选中区域设置为汉字字体,如“仿宋”,再选中区域,设置英文字体“Arial”就可以了啊,汉字按汉字字体显示,英文、数字按Arial显示
追问
恩,可是我们公司的电脑上,我先选了“仿宋”,再选“Arial”汉字就会变成不是仿宋了……不然也不用这么复杂啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Sub aa()
Dim str As String
Dim i As Integer
Dim a As Range
Set a = Range("a1:a10") '选择的范围
For Each b In a
str = b.Cells
For i = 1 To Len(str)
If Asc(Mid(str, i, 1)) < 0 Then
b.Cells.Font.Name = "黑体"
Else
b.Cells.Font.Name = "Arial"
End If
Next i
Next
End Sub
Dim str As String
Dim i As Integer
Dim a As Range
Set a = Range("a1:a10") '选择的范围
For Each b In a
str = b.Cells
For i = 1 To Len(str)
If Asc(Mid(str, i, 1)) < 0 Then
b.Cells.Font.Name = "黑体"
Else
b.Cells.Font.Name = "Arial"
End If
Next i
Next
End Sub
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
复制改好的格,选择性粘贴 格式 到其他要改的单元格即可
追问
问题是我有上万个格子要改……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询