VBA - несколько листов в массиве vba - PullRequest
0 голосов
/ 22 марта 2019

Привет, этот макрос Private Sub Workbook_Open () вставляет в различные листы макрос call_color, но он не работает:

Private Sub Workbook_Open()
Application.ScreenUpdating = False
   'Dim ListaFogli As Variant
    Dim Foglio As Variant  
    ListaFogli = Array("MAX1", "MAX MAX", "MAX3", "MAX4", "MAX7", "MAX MAX MAX")    
    For Each Foglio In ListaFogli    
        Call color_cell        
    Next Foglio    
Application.ScreenUpdating = True  
End Sub


Sub color_cell()
  Range("A1").Interior.ColorIndex = 3  
End Sub

помощь? Спасибо вам макс

Ответы [ 3 ]

0 голосов
/ 22 марта 2019

Привет SJR, твой макрос для макроса color_cell работает хорошо. Я изменил макрос и добавил макрос imposta_pagina, но он не работает

Private Sub Workbook_Open () 'SJR

Application.ScreenUpdating = False

Dim ListaFogli As Variant Дим Фольо как вариант

ListaFogli = Array ("MAX1", "MAX MAX", "MAX3", "MAX4", "MAX7", "MAX MAX MAX")

Для каждого Фолья в ListaFogli

                       'color_cell CStr(Foglio)
imposta_pagina CStr(Foglio)

Следующая Фолья

Application.ScreenUpdating = True

End Sub

Sub imposta_pagina (s As String) 'SJR

With ActiveSheet.PageSetup
    .PrintTitleRows = "$1:$5"
    .PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
    .CenterHorizontally = True
    .CenterVertically = True
    .Orientation = xlLandscape
    .Zoom = False
    .FitToPagesWide = 1
    .FitToPagesTall = 30
    End With

End Sub

0 голосов
/ 22 марта 2019

Это правильно?

Sub imposta_pagina(s As String) 'esempio 2 SJR

With Worksheets(s).PageSetup
   .PrintTitleRows = "$1:$5"
    .PrintTitleColumns = ""
End With
Worksheets(s).PageSetup.PrintArea = ""
With Worksheets(s).PageSetup
    .CenterHorizontally = True
    .CenterVertically = True
   .Orientation = xlLandscape
    .Zoom = False
    .FitToPagesWide = 1
    .FitToPagesTall = 30
    End With    

End Sub

0 голосов
/ 22 марта 2019

Попробуй это. Там нет ошибок, если имя листа не существует, но вы должны начать с него.

Private Sub Workbook_Open()

Application.ScreenUpdating = False

Dim ListaFogli As Variant
Dim Foglio As Variant

ListaFogli = Array("MAX1", "MAX MAX", "MAX3", "MAX4", "MAX7", "MAX MAX MAX")

For Each Foglio In ListaFogli
    color_cell CStr(Foglio)
Next Foglio

Application.ScreenUpdating = True

End Sub


Sub color_cell(s As String)
    Worksheets(s).Range("A1").Interior.ColorIndex = 3
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...