У меня есть два кода VBA, которые я хотел бы запустить при открытии книги Excel.
Sub test2()
Dim c As Range
For Each c In Range("A1:A1").Cells
c.Select
SendKeys "{F2}", True
SendKeys "{ENTER}", True
Next
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xCell As Range
If Target.Address <> Range("A1").Address Then Exit Sub
Application.ScreenUpdating = False
For Each xCell In Range("B3:P3")
xCell.EntireColumn.Hidden = (xCell.Value < Target.Value)
Next
Application.ScreenUpdating = True
End Sub
Он отлично работает вручную.
Я пробовал Sub Workbook_Open
, но это не работает.
Я попытался в модуле, в листе и в ThisWorkbook
тоже.
Не удалось заставить его работать автоматически при открытии книги.
Этот код должен F2 + войти в ячейку A1 и затем скрыть некоторые столбцы в зависимости от значения в A1.
Я изменил код следующим образом:
Private Sub Workbook_Open()
test2
End Sub
Sub test2()
Dim c As Range
For Each c In Sheets("MySheet").Range("A1:A1").Cells
c.Select
SendKeys "{F2}", True
SendKeys "{ENTER}", True
Next
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xCell As Range
If Target.Address <> Range("A1").Address Then Exit Sub
Application.ScreenUpdating = False
For Each xCell In Range("B3:P3")
xCell.EntireColumn.Hidden = (xCell.Value < Target.Value)
Next
Application.ScreenUpdating = True
End Sub
Когда открывается рабочий лист, он начинает работать, выполняет первую часть (F2 + Enter), но на этом останавливается. Не выполняет эту часть:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xCell As Range
If Target.Address <> Range("A1").Address Then Exit Sub
Application.ScreenUpdating = False
For Each xCell In Range("B3:P3")
xCell.EntireColumn.Hidden = (xCell.Value < Target.Value)
Next
Application.ScreenUpdating = True
End Sub
Код, написанный на Листе 1 (не «ThisWorkbook»), вручную работает хорошо (не автоматически).
Тот же код, написанный в «ThisWorkbook», начинает выполняться автоматически при открытии файла, но останавливается в середине (как упоминалось ранее).