Я использую Excel 2010 для некоторой автоматизации.VBA - замораживание панели в другом файле
Короче говоря, я создаю новую книгу с помощью этого метода:
With CreateObject("Excel.Application")
Set NewBook = .Workbooks.Add
.Visible = True
End With
With NewBook
Set WS = NewBook.Sheets("Sheet1")
End With
А теперь я хотел бы создать стоп-панель.
Я попытался с помощью выбрать и ActiveWindow, как на this page:
WS.Range("F4").Select
ActiveWindow.FreezePanes = True
Как-то при редактировании различных файлов, .select метод всегда выбирает исходный файл вместо добавленной книги.
Затем я посмотрел на this page и попробовал:
NewBook.activate
With ActiveWindow
If .FreezePanes Then .FreezePanes = False
.SplitColumn = 5
.SplitRow = 4
.FreezePanes = True
End With
Не используется, замораживать панель создается на исходном файле.
Nor выполняет следующие работы:
With NewBook
If .FreezePanes Then .FreezePanes = False
.SplitColumn = 5
.SplitRow = 4
.FreezePanes = True
End With
Не уверен, если мой .activate метод является неправильным, или ActiveWindow неправильно, или, может быть, .select неправильно. Большое спасибо, кто мог бы помочь.
Кроме того, чтобы создать область замораживания, кажется, что VBA всегда требует ActiveWindow, есть ли способ обойти его? –
Нет. Это свойство окна, а не рабочий лист. Вам нужно использовать 'NewBook.Application.ActiveWindow.FreezePanes = True' или' NewBook.Windows (1) .FreezePanes = True' – Rory
Вы создаете новый экземпляр Excel, поэтому вам нужно явно ссылаться на этот экземпляр. –