Vba отказывается работать с файлами в имени которых иероглифы и другие спец символы
|
|
Суббота, 25 Мая 2019 г. 17:33
+ в цитатник
Добрый день
Чтобы импортировать данные из файлов Excel использовал следующее:
+ |
Private Sub Кнопка0_Click()
Dim a As Long
a = 0
a = CreateObject("scripting.filesystemobject").getfolder(CurrentProject.Path & "\файлы").files.Count 'считаем количество файлов в папке
If a > 0 Then 'если папка не пустая
'то
st = Dir$(CurrentProject.Path & "\файлы\*.xls", 15) 'запоминаем имя первого файла
Do While Len(st) > 0
Call LoadExcel(CurrentProject.Path & "\файлы\" & st) 'запускаем функцию загрузки инфы из файла
st = Dir$ 'запоминаем имя следующего файла
Loop
' Call Kill(CurrentProject.Path & "\файлы" & "*.*") 'удаляем все файлы из папки
Else
'иначе выводим сообщение о том что папка пустая
MsgBox "Сначала необходимо загрузить файлы в папку Файлы"
End If
End Sub
Private Function LoadExcel(ExcelPath As String)
'функция загрузки инфы из ексель файла
Dim ExlApp As Object
Dim WrkBk As Object
Set ExlApp = CreateObject("Excel.sheet")
Set WrkBk = ExlApp.Parent
WrkBk.workbooks.Open ExcelPath 'открываем файл ексель
WrkBk.Visible = False 'делаем невидимым
ExcelRow = WrkBk.Cells.SpecialCells(11).Row 'определяем количество строк
ExcelColumn = WrkBk.Cells.SpecialCells(11).Column 'определяем количество столбцов
Dim a(1 To 8) As Integer
For i = 1 To ExcelColumn
'определяем нужные столбцы - сравнение идет по названию столбцов
Select Case WrkBk.Cells(1, i)
..................
End Select
Next i
'загружаем информацию в таблицу
................
WrkBk.Quit 'закрываем ексель
Set WrkBk = Nothing 'сброс объектных переменных
Set ExlApp = Nothing
End Function
|
Но сейчас приходят файлы в имени которых присутствует иероглифы и другие спец. символы.
Во время запуска функции импорта в строке
WrkBk.workbooks.Open ExcelPath
возникает ошибка, т.е. окошко в котором Microsoft Office Access сообщает: нам не удалось найти файл ... Возможно он был перемещен, переименован или удалён?
Пробовал смотреть название файла через MsgBox эти символы отображаются вопросительными знаками, как и при просмотре в области отладки (Immediate).
https://www.sql.ru/forum/1312928/vba-otkazyvaetsya-rabotat-s-faylami-v-imeni-kotoryh-ieroglify-i-drugie-spec-simvoly
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-