Попытка установить переменную с именами файлов Unicode или путями. Путь к текущей книге содержит символы литовского языка ĄČĘĖĮŠŲŪŽ
только ŠŽ
отображается правильно
Private Declare PtrSafe Function GetFileAttributesW Lib "kernel32.dll" (ByVal lpFileName As LongPtr) As Long
Private Declare PtrSafe Function GetCurrentDirectory Lib "kernel32" _
Alias "GetCurrentDirectoryW" _
(ByVal nBufferLength As LongPtr, ByVal lpBuffer As String) As Long
Sub test()
Dim buff As String * 420
Dim Shell32 As New Shell32.Shell, Item As Shell32.ShellFolderItem
strFile = ThisWorkbook.path & "\test.txt"
len_dir = GetCurrentDirectory(200, buff)
test1 = CreateObject("WScript.Shell").CurrentDirectory & "\test.txt": result1 = GetCsvData(test1) ' Error Path not found
test2 = CreateObject("Scripting.FileSystemObject").GetAbsolutePathName(".") & "\test.txt": result2 = GetCsvData(test2) ' Error Path not found
test3 = Dir(ThisWorkbook.path & "\test.txt"): result3 = GetCsvData(test3) ' Error Path not found
test4 = strFile: result4 = GetCsvData(test4) ' Error Path not found
test5 = Left(buff, len_dir + len_dir) & "\test.txt": result5 = GetCsvData(test5) ' Bad filename or number, GetFileAttributesW error, TextOutW error, GetShortPathNameW error
test6 = Shell32.Namespace(ThisWorkbook.path).Items.Item(0).path & "\test.txt": result6 = GetCsvData(test6) ' Error Path not found
test7 = CurDir & "\test.txt": result7 = GetCsvData(test7) ' Error Path not found
Stop
End Sub
Function GetCsvData(backUpName) As Variant
Dim MyData As String, strData() As String
Open backUpName For Binary As #1
MyData = Space$(LOF(1))
Get #1, , MyData
Close #1
GetCsvData = MyData
End Function
Также не понимаю, что в testį означает квадраты в имени файла, как если бы они записывалисьэто для файловых квадратов исчезло, но при чтении из этого файла возвращаются квадраты.
Так как использовать символы Юникода в путях и именах файлов?