Ответ 1
Если у вас есть ссылка на книгу, вы можете просто перебирать все Windows в своей коллекции. Если приложение не видно, вы должны получить только 1, но это безопаснее, чем пытаться жестко закодировать индекс:
Private Sub ToggleGridLines(target As Workbook)
Dim wnd As Window
For Each wnd In target.Windows
wnd.DisplayGridlines = False
Next
End Sub
Обратите внимание, что это изменит отображение на рабочем листе в рабочей книге - почему это свойство окна, а не рабочий лист вне меня.
EDIT:
Благодаря ссылке, которую добавил @Tim, я понял, что полностью отстал от коллекции SheetViews
. Это должно отключить линии сетки для произвольного объекта Worksheet
:
Private Sub TurnOffGridLines(target As Worksheet)
Dim view As WorksheetView
For Each view In target.Parent.Windows(1).SheetViews
If view.Sheet.Name = target.Name Then
view.DisplayGridlines = False
Exit Sub
End If
Next
End Sub