Я пытаюсь создать сценарий, в котором я нажимаю кнопку, и вы получаете всплывающее окно, в котором вы выбираете файл .CSV и затем загружаете его в конкретное место назначения. До сих пор мне удавалось делать то, что я только что сказал, но как неанглоязычный пользователь данные в моем .CSV написаны на шведском языке, и мне нужно сохранить наши «специальные» символы.
Я пытался записать загрузку файла с помощью мастера импорта данных, но не могу обернуть голову вокруг этого кода, чтобы он работал с переменной name / filepath.
Пока у меня есть код ниже, он загружает файл быстро и безболезненно, но не сохраняет специальные символы, такие как «åäö».
Dim ws As Worksheet, strFile As String
Set ws = Worksheets("Input")
ws.UsedRange.Clear
strFile = Application.GetOpenFilename("Text Files (*.csv),*.csv", , "Please select text file...")
With ws.QueryTables.Add(Connection:="TEXT;" & strFile, _
Destination:=ws.Range("A1"))
.TextFileParseType = xlDelimited
.TextFileSemicolonDelimiter = True
.PreserveFormatting = True
.Refresh
End With
Исходный файл .CSV в соответствии с мастером импорта - "65001: Unicode (UTF-8)", и я попытался найти свойства для .QueryTables, чтобы распознать это.
Я попробовал одну из многих вещей:
.QueryType = xlOLEDBQuery / xlTextImport
.TextFilePlatform = xlWindows / xlMSDOS
но .QueryType дает мне только «объект не поддерживает этот метод или свойство» или «недопустимое присвоение свойства».
Такое ощущение, что проблема в том, что Excel не знает, как он должен относиться к кодировке файла (Unicode (UTF-8)), но я довольно новичок в этой области, поэтому я могу искать неправильные вещи.