Несмотря на то, что многие сообщения, которые я просмотрел, были в том же духе, что и мой вопрос, ни один из ответов не удовлетворяет тому, что я ищу. Если вы можете дать мне ссылку на один, я бы с удовольствием прочитал его.
У меня есть рабочая тетрадь с рабочими листами. Для простоты предположим, что в моей книге есть рабочий лист. И на моем листе, который называется «Лист1», есть данные в ячейках от A1 до A4.
Что я хочу, чтобы мой код VBA делал, так это:
Пока что у меня есть это:
Sub OpenAndSaveNewBook()
'Declarations
Dim MyBook As String
Dim MyRange As Range
Dim newBook As Workbook
'Get name of current wb
MyBook = ThisWorkbook.Name
Set MyRange = MyBook.Sheets("Sheet1").Range("A1,F1")
'Create/Open new wb
newBook = Workbooks.Add
'Save new wb with XLS extension
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "/" & "TEST-BOOK", _
FileFormat:=xlNormal, CreateBackup:=False
'===NOTE: BEFORE THE FOLLOWING RUNS I NEED TO PERFORM ACTIONS ON CELLS VIA VBA ON
'===WORKBOOK 'A'. DOES THE NEWLY CREATE WORKBOOK BECOME THE PRIMARY/ACTIVE WORKBOOK
'===? AND SO THEN DO I NEED TO ACTIVATE WORKBOOK 'A'?
ActiveWorkbook.Close savechanges:=True
'Return focus to workbook 'a'
MyBook.Activate
End Sub
Как видите, мне не хватает кода который будет обрабатывать:
Наконец, я включил вопрос в моем коде, поскольку я думаю, что у меня может быть неправильное понимание метода ActiveWorkbook. AFAIK, когда запускается код «Workbooks.Add», становится активной книгой, то есть книгой с фокусом. Влияет ли это на то, как код VBA работает в книге «А»? Означает ли это, что если бы я хотел добавить код для управления ячейками книги «А», мне нужно было бы использовать «MyBook.Activate», где «Моя книга» содержит строку фактического названия книги «А»?
Будем признательны за любую помощь.
Спасибо, QF