Excel: динамический выбор листа (без имени листа) - PullRequest
0 голосов
/ 08 января 2019

Листы внутри моего файла Excel являются динамическими. У меня есть кнопка, которая создает лист с новым именем.

Можно ли динамически выбирать лист? Или не зная названия листов.

Вот мой код VBA для печати определенного диапазона ячеек

Private Sub CommandButton1_Click()
    Sheets("-32628").Select
    range("A1:BZ18").Select
    ActiveSheet.PageSetup.PrintArea = "A1:BZ18"
    ActiveWindow.SelectedSheets.PrintOut from:=1, To:=1, Copies:=1, Collate _
      :=True
End Sub

Что я хочу, это выбрать Sheetname: -32628 без указания фактического названия листа?

Ответы [ 2 ]

0 голосов
/ 08 января 2019

У меня есть кнопка, которая создает лист с новым именем.

Если вы создаете лист нажатием кнопки, это довольно просто. Объявите объект листа поверх вашего кода, чтобы к нему могли обращаться другие процедуры, а затем работайте с ним. Например

Dim ws As Worksheet

Private Sub CommandButton1_Click()
    If Not ws Is Nothing Then
        ws.PageSetup.PrintArea = "A1:BZ18"

        ActiveWindow.SelectedSheets.PrintOut _
        from:=1, To:=1, Copies:=1, Collate:=True
    End If
End Sub

Private Sub CommandButton2_Click()
    Set ws = ThisWorkbook.Sheets.Add
    ws.Name = "-32628"
End Sub
0 голосов
/ 08 января 2019

Прежде всего Избегайте использования Select в Excel VBA . Это сильно замедляет ваш код и является очень плохой практикой.

Вместо этого обращайтесь непосредственно к вашему рабочему листу, например вместо ActiveSheet:

Worksheets("-32628").PageSetup.PrintArea = "A1:BZ18"

Существует 3 способа ссылки на лист:

  1. По имени видимой вкладки

    Worksheets("YourSheetName")
    
  2. По позиции табуляции

    Worksheets(1) 'first sheet in tab list
    
  3. По имени VBA

    Sheet1 'note that 1 is not the position of the sheet in the tab list. It's just a name.
    

  • Обратите внимание, что имя VBA листа можно изменить в окне Свойства VBA-редактора.
  • Также обратите внимание, что Worksheets("Sheet1") и Worksheets(1) и Sheet1 могут быть 3 совершенно разными листами. Я рекомендую не использовать цифры и давать им разные имена, так как цифры могут легко вызвать путаницу.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...