Добрый день! Подскажите, почему не видно файлы при запуске этого макроса? При обычном открытии через Файл-Открыть все файлы видны
Код
Sub NoColor()
Dim sFolder As String, sFiles As String
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = False Then Exit Sub
sFolder = .SelectedItems(1)
End With
sFolder = sFolder & IIf(Right(sFolder, 1) = Application.PathSeparator, "", Application.PathSeparator)
sFiles = Dir(sFolder & "*.xlsb*")
Do While sFiles <> ""
Workbooks.Open sFolder & sFiles
'Далее идут действия с файлом
gerbera написал: должен открывать все файлы в данной папке
не все, а только файлы с расширением ".xlsb" Если таковых нет в папке - конечно ничего не откроет. И на всякий случай: надо учитывать, что код не просматривает подпапки.
The_Prist, файлы у меня и есть с расширением *xlsb. И файлы не в подпапках. Запускаю макрос - открывается Обзор - выбираю нужную папку - далее макрос выдает ошибку на строчке, которая в моем примере указана последней. И я подумала, что раз файлов я там не увидела, может в этом причина, что они не открылись. При обычном открытии через Файл-Открыть я их вижу.
gerbera написал: макрос выдает ошибку на строчке, которая в моем примере указана последней
Тогда приведите текст ошибки или скрин. Скорее всего проблема в доступе к файлам и невозможности открыть их, а не в том, что код их не видит. Он видит, пытается открыть, но не может.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Кузьмич, я ведь не просто так говорю: недавно писал макрос - у меня (ХР и 2010) всё работало. У заказчика (Win7 и 2013) на этой строке ошибка. Добавил слэш - всё заработало. И я не утверждаю, что именно из-за этого у gerbera проблема - всего лишь предлагаю попробовать.
Юра, если это то, что мы обсуждали в личке - то у тебя проблема была иной - куда-то исчез путь к файлам в строке открытия файла, что и вызывало ошибку. Здесь же что-то иное и надо ждать появления автора с текстом ошибки. Либо доступа нет к файлу, либо еще что-то.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Прилагаю весь код, суть открыть все файлы в папке и в ячейке J50 перекрасить цифру в белый цвет.
Код
Sub NoColor()
Dim sFolder As String, sFiles As String
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = False Then Exit Sub
sFolder = .SelectedItems(1)
End With
sFolder = sFolder & IIf(Right(sFolder, 1) = Application.PathSeparator, "", Application.PathSeparator)
sFiles = Dir(sFolder & "*.xlsb*")
Do While sFiles <> ""
Workbooks.Open sFolder & sFiles
Range ("J50").Select
With Selection.Font
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
End With
ActiveWorkbook.Save
ActiveWindow.Close
sFiles=Dir
Loop
End Sub
У меня в проблемном файле, о котором я говорил выше, заработало так (попробуйте поменять этот блок кода):
Код
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = False Then Exit Sub
sFolder = .SelectedItems(1)
End With
Application.ScreenUpdating = False
sFiles = Dir(sFolder & Application.PathSeparator & "*.xlsb*")
Do While sFiles <> ""
Workbooks.Open sFolder & "\" & sFiles
Если руками открываете этот файл - он открывается нормально? Имею ввиду открытие двойным щелчком по файлу. Операционная система у Вас какая? Версия офиса?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
The_Prist, руками нормально открываю, а макросом не видит и другие файлы .xlsb, не только которые хочу открыть. Меняю расширение в коде, все равно не видит. Офис 10. ОС Windows 7 Может действительно по безопасности закрыто, корпоративная ОС.