如何在vba个unicode字符中使用

How to use in vba unicode characters

vba 编辑器有问题。查看了许多资源,并为字母 schwab“ə”尝试了许多正确的 unicode,但没有点“ı”,但没有一个能正确显示这些字母。试图改变字体 shrifts 但它给出了俄语字母的错误。所以我需要它们都作为路径显示在编辑器上,并且无法更改文件夹的路径。 我什至在 u+01DD、u+0259 的 vba 中尝试了字符宽,例如 &H259,1DD,但结果是问号或不同的字符。 u+0131 给出了带点的精确 i,不是我需要的。 任何人都知道如何在 vba?

中显示这些字符
FolderName = "C...ə(?)lsheth/folders/"
FileName =Dir(FolderName & "*.xls*")
Do While FileName <> ""
Debug.Print FileName
FileName = Dir()
Loop

给出错误 52,名称或号码错误 我认为问题在于,schwa 拉丁字母有很多版本,我需要使用(尝试)所有版本,因为我认为解决方案必须是其中之一。有谁知道如何将它们转换为在 VBA 的 chrW() 中使用? 清单在这里;我已经从 unicode 页面获取了它 0259 ə 拉丁文小写字母 SCHWA • 中间中央不圆唇元音 • 大写是 018F Ə • 变体大写形式 018E Ǝ 与 01DD ǝ → 01DD ǝ 拉丁文小写字母转为 e → 04D9 ә 西里尔小写字母 schwa

ChrW(399)

ChrW(305) = ı

这些字符不会显示在 VBE 中,但是当您将值赋给单元格时,Excel 将显示这些字符。

备选方案:

ChrW(601)

ChrW(618) = ɪ(在Excel中用Calibri打印时看起来像无点i)

正如@Toddleson 已经提到的,Visual Basic 编辑器不支持 Unicode 字符。而且 Dir 函数也不支持它。但是,FileSystemObject 对象确实支持它。

这是一个示例,它使用 ChrW 函数 return 所需的 unicode 字符,然后使用 FileSystembObject 对象遍历指定文件夹中的每个文件,过滤 .xls 文件,打开文件,然后保存并关闭它。

Sub test()

    Dim folderName As String
    folderName = "C:\Users\Domenic\Desktop\D" & ChrW(&H259) & "nmark\" 'change the path accordingly

    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    Dim folder As Object
    Set folder = fso.getfolder(folderName)
    
    Dim file As Object
    Dim wb As Workbook
    For Each file In folder.Files
        If InStr(1, file.Name, ".xls", vbTextCompare) > 0 Then
            Set wb = Workbooks.Open(file.Path)
            'etc
            '
            '
            With wb
                .Save
                .Close
            End With
        End If
    Next file
    
    Set file = Nothing
    Set folder = Nothing
    Set fso = Nothing

End Sub