Я использовал код из Извлечь весь файл .gz в папке с помощью команды VBA Shell для извлечения файлов .gz. Проблема в том, что если в пути к файлу есть пробел, код не работает, если пробела нет, он работает, как показано ниже: < strong>Обратите внимание, что в первом примере нет '_', но есть пробел ' ' между 'K' и 'L', поэтому в пути к файлу есть пробелы, тогда как пример, который работает, есть '_', и весь путь к файлу не имеет пробелов
'Example that doesn't work:
Sub extractAllFiles()
Dim MyObj As Object, MySource As Object, File As Variant
Dim shellStr As String
File = Dir("Z:\A_B_C\D_E_F\G_H_I\J_K L\_M_N_O\P_Q_R\*.gz")
While (File <> "")
If InStr(1, File, ".gz") > 0 Then
shellStr = "C:\Program Files\WinZip\winzip32 -e Z:\A_B_C\D_E_F\G_H_I\J_K L\_M_N_O\P_Q_R\" & File & " Z:\A_B_C\D_E_F\G_H_I\J_K L\_M_N_O\P_Q_R\"
Call Shell(shellStr, vbHide)
End If
File = Dir
Wend
End Sub
'Example that works:
Sub extractAllFiles()
Dim MyObj As Object, MySource As Object, File As Variant
Dim shellStr As String
File = Dir("Z:\A_B_C\D_E_F\G_H_I\J_K_L\_M_N_O\P_Q_R\*.gz")
While (File <> "")
If InStr(1, File, ".gz") > 0 Then
shellStr = "C:\Program Files\WinZip\winzip32 -e Z:\A_B_C\D_E_F\G_H_I\J_K_L\_M_N_O\P_Q_R\" & File & " Z:\A_B_C\D_E_F\G_H_I\J_K_L\_M_N_O\P_Q_R\"
Call Shell(shellStr, vbHide)
End If
File = Dir
Wend
End Sub
Я хочу, чтобы первый пример работал, но почему это не так?
Ошибок нет. Код запускается, открывает винзип, но он пустой, ни один файл не распаковывается! Большое спасибо.