首页 > 解决方案 > vba中非英语语言的字体大小不会改变

问题描述

我正在尝试使用 vba 从 excel 中收集文本并将其放入 word 文档中。

使用以下脚本,我得到的样式只影响英文字母,但希伯来文的字母不跟随。

Sub WriteToWord()

    Dim wordApp As Object
    Dim mydoc As Object

    Set wordApp = CreateObject("Word.Application")

    wordApp.Visible = True
    wordApp.Activate

    Set mydoc = wordApp.Documents.Add()

    With wordApp.Selection
        .Font.Size = 18
        .Font.Bold = True
        .TypeText ("a")
        .TypeText ("חדש")
    End With
End Sub

标签: vbahebrew

解决方案


我试图复制你最后的希伯来语字符串,但对我来说,它没有正确编码,因为它只是"???"在编辑器和 Word 文档中显示(注意我在瑞典计算机上,所以它可能仍会为您显示正确的字符=。

VBA 编辑器似乎只支持 Windows-1252 编码(https://stackoverflow.com/a/23678551/4663244),所以我很好奇您如何使用这些字符 :)

这是关于如何在 VBA 脚本中使用 Unicode 字符的相关问题:declaring a unicode string in vba in excel

无论如何,如果我使用该函数ChrW编写 unicode 字符,我就可以正常工作(顺便说一句,我不确定我使用了正确的字符,所以请检查一下):

Sub WriteToWord()

    Dim wordApp As Object
    Dim mydoc As Object

    Set wordApp = CreateObject("Word.Application")

    wordApp.Visible = True
    wordApp.Activate

    Set mydoc = wordApp.Documents.Add()

    With wordApp.Selection
        .Font.Size = 18
        .Font.Bold = True
        .TypeText ("a")
        .TypeText (ChrW(1495) + ChrW(1491) + ChrW(1513))
    End With
End Sub

推荐阅读