Sub QQQ
Dim wb As Workbook
Set wb = ActiveWorkbook
Set PZ = Sheets("Лист2")
Set L1 = Sheets("Лист1")
For a = 4 To 17
PZ.Cells(6, 1) = L1.Cells(a, 1)
PZ.Copy '
ActiveWorkbook.SaveAs wb.Path & "\" & PZ.Cells(6, 1).Value & ".xlsx"
Next a
End Sub
Меняет значение в ячейке PZ.Cells(6, 1) на значение из таблицы на другом листе и копирует лист в отдельный файл с названием из этой же ячейки. Но если в этой ячейке есть текст в котором символ "/", то макрос останавливается с ошибкой (см.приложеный скрин). Ну т.е. воспринимает его как часть пути чтоли... Прошу подсказки, как сделать так, чтобы макрос при присваивании имени вновь создаваемому файлу убирал из этого имени знак "/" ? PS И что дописать чтобы файлы которые создаются копированием листов, не оставались открытыми, а закрывались. Спасибо PS на приложенном скрине ошибка возникает, когда он пытается обработать значение из ячейки равное "1475/1-17"
john22255 написал: воспринимает его как часть пути чтоли...
а как еще должен воспринимать? Этот символ не допускается использовать в качестве имени файла или папки, т.к. он является разделителем папок. Вы даже руками не сможете создать файл с именем, в котором содержится этот символ
но лучше использовать доп.функцию, которая в цикле будет удалять ВСЕ "неугодные" символы. Что-то вроде:
Код
Function RepSymbols(sTxt$)
Const sUNUSED$ = "\/:*<>|"""
Dim lr&, sl$, sres$
sres = sTxt
For lr = 1 To Len(sUNUSED)
sl = Mid$(sUNUSED, lr, 1)
sres = Replace(sres, sl, "")
Next
RepSymbols = sres
End Function