Excel 中的字体替换

Excel 中的字体替换

我有一个 Excel 文件,其中单元格的格式为 Trade Gothic LT Std 字体,我的电脑安装了 Trade Gothic LT Pro,我认为两者基本相同。看来 Excel 正在用 Courier New 替换该字体。有没有办法强制替换?我需要使用正确的字体将文件转换为 PDF。

我尝试过替换格式,但是有 70 张表,Excel 崩溃了。

有没有用 VBA 的解决方案?

答案1

我想建议 VBA 宏帮助您在各个工作表中用新字体替换特定字体。


Sub ChangeFont()

Dim vNamesFind
Dim vNamesReplace
Dim sFileName As String
Dim Wkb As Workbook
Dim Wks As Worksheet
Dim rCell As Range
Dim x As Integer
Dim iFonts As Integer
Dim sPath As String


vNamesFind = Array("Arial")

vNamesReplace = Array("Times New Roman")

sPath = "C:\Your Folder Name\"

Application.ScreenUpdating = False
iFonts = UBound(vNamesFind)
If iFonts <> UBound(vNamesReplace) Then
    MsgBox "Find & Replace Fonts must be the same size"
    Exit Sub
End If
sFileName = Dir(sPath & "*.xls")
Do While sFileName <> ""
    Set Wkb = Workbooks.Open(sPath & sFileName)
    For Each Wks In Wkb.Worksheets
        For Each rCell In Wks.UsedRange
            For x = 0 To iFonts
                With rCell.Font
                    If .Name = vNamesFind(x) Then _
                        .Name = vNamesReplace(x)
                End With
            Next
        Next
    Next
    Wkb.Close(True)
    sFileName = Dir
Loop
Application.ScreenUpdating = True
Set rCell = Nothing
Set Wks = Nothing
Set Wkb = Nothing
End Sub

怎么运行的:

  • 为了更好地管理,创建一个新文件夹并保存要应用新字体的工作簿。

  • "C:\Your Folder Name\"字体Arial和内容New Times Roman也是可编辑的。

  • 将此宏用作另一个工作簿中的标准模块(除了您想要应用新字体的工作簿之外)。

  • 将文件另存为Macro Enabled(*.xlsm)

  • 当您运行此宏时,它会打开文件夹中的工作簿,然后遍历所有工作表,如果单元格中存在要找到的字体之一,那么它会用新字体替换它。

希望您使用的机器具有足够内存和更快的处理器。

相关内容