Всем добрый день. На сайте нашел макрос который работает по принципу, выделил нужные листы, запустил макрос он сохранит их по пути исходного файла в файл с названием первого выделенного листа. Я его собрал из трех кусков с разных мест сайта. Не программист. И вот затык, уже день сижу не могу решить как написать эту строчку ActiveWorkbook.SaveAs wb.Path & "\" & s.Name & ".xlsx", как только не пробовал не вижу чего то видимо в чём ошибка?
Заранее спасибо.
Сам макрос.
Код
Sub SplitSheets_cop_disconnect()
Dim s As Worksheet
Dim wb As Workbook
Set wb = ActiveWorkbook
Dim CurW As Window
Dim TempW As Window
Set CurW = ActiveWindow
Set TempW = ActiveWorkbook.NewWindow
CurW.SelectedSheets.Copy
TempW.Close
Set wb = ActiveWorkbook
WorkbookLinks = wb.LinkSources(Type:=xlLinkTypeExcelLinks)
If IsArray(WorkbookLinks) Then
For i = LBound(WorkbookLinks) To UBound(WorkbookLinks)
wb.BreakLink Name:=WorkbookLinks(i), Type:=xlLinkTypeExcelLinks
Next i
End If
ActiveWorkbook.SaveAs wb.Path & "\" & s.Name & ".xlsx"
Ошибка run-time error '91' Object variable or with block variable not set
я не ленивый, правда перепробовал всё что здесь есть, просто видимо не догоняю какой то момент в последней строке, где то надо поправить, а что не пойму. Макродер выдает фигню вот отсюда всё брал https://www.planetaexcel.ru/techniques/3/160/
буду очень признателен если подскажите, где ошибка в коде, я сохраняю как то не так.
Решил только таким вот способом. Я так понимаю что командой wb.Path. Программа не могла понять куда ей сохранять так как это было вновь созданный файл который еще ни имеет ни какого пути. Если не прав поправьте
Код
Sub SplitSheets777()
''Выделяем листы, запускаем макрос, сохраняет выделенные листы, с разрывом ссылок на старый файл в путь указанный в последней строке.
Dim s As Worksheet
Dim wb As Workbook
Set wb = ActiveWorkbook
Dim CurW As Window
Dim TempW As Window
Set CurW = ActiveWindow
Set TempW = ActiveWorkbook.NewWindow
CurW.SelectedSheets.Copy
TempW.Close
Set wb = ActiveWorkbook
WorkbookLinks = wb.LinkSources(Type:=xlLinkTypeExcelLinks)
If IsArray(WorkbookLinks) Then
For i = LBound(WorkbookLinks) To UBound(WorkbookLinks)
wb.BreakLink Name:=WorkbookLinks(i), Type:=xlLinkTypeExcelLinks
Next i
End If
ActiveWorkbook.SaveAs "c:\Users\me\Documents\папка для файла" & ActiveSheet.Name & ".xlsx"
End Sub