Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3887|回复: 6

[已解决]如何用VBA 写替换整个工作薄中的字体格式?

[复制链接]
发表于 2015-2-6 21:30 | 显示全部楼层 |阅读模式
1.jpg
请问这个功能用VBA怎么写? 将所有工作薄中的宋体加粗的字体全部替换成楷体常规11号字体?
求大神赐教。
最佳答案
2015-2-6 21:52
不知道是不是这意思
  1. Sub x()
  2. Dim x, rg
  3.   For x = 1 To Sheets.Count
  4.    For Each rg In Sheets(x).UsedRange
  5.     If rg.Font.Bold = True And rg.Font.Name = "宋体" Then
  6.      rg.Font.Name = "楷体常规"
  7.      rg.Font.Size = 11
  8.      rg.Font.Bold = False
  9.     End If
  10.    Next
  11. Next
  12. End Sub
复制代码
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-2-6 21:52 | 显示全部楼层    本楼为最佳答案   
不知道是不是这意思
  1. Sub x()
  2. Dim x, rg
  3.   For x = 1 To Sheets.Count
  4.    For Each rg In Sheets(x).UsedRange
  5.     If rg.Font.Bold = True And rg.Font.Name = "宋体" Then
  6.      rg.Font.Name = "楷体常规"
  7.      rg.Font.Size = 11
  8.      rg.Font.Bold = False
  9.     End If
  10.    Next
  11. Next
  12. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2015-2-6 22:13 | 显示全部楼层
26759761@qq.com 发表于 2015-2-6 21:52
不知道是不是这意思

请问如果我不想让他更改其中2个工作表怎么写?
回复

使用道具 举报

发表于 2015-2-6 22:15 | 显示全部楼层
哪两个  工作表名字发出来
回复

使用道具 举报

 楼主| 发表于 2015-2-6 22:16 | 显示全部楼层
26759761@qq.com 发表于 2015-2-6 22:15
哪两个  工作表名字发出来

sheet3和sheet6
回复

使用道具 举报

发表于 2015-2-6 22:21 | 显示全部楼层
  1. Sub x()
  2. Dim x, rg
  3.   For x = 1 To Sheets.Count
  4.   If x = 3 Or x = 6 Then GoTo 10
  5.    For Each rg In Sheets(x).UsedRange
  6.     With rg.Font
  7.         If .Bold = True And .Name = "宋体" Then
  8.             .Name = "楷体常规"
  9.             .Size = 11
  10.             .Bold = False
  11.         End If
  12.     End With
  13.    Next
  14. 10
  15. Next
  16. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2015-2-6 22:29 | 显示全部楼层
26759761@qq.com 发表于 2015-2-6 22:21

十分感谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-16 06:38 , Processed in 1.396652 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表