Excel VBA Создать раскрывающийся список в ячейке на основе имен листов - PullRequest
1 голос
/ 15 апреля 2019

Я хочу создать выпадающий список на основе имен рабочих листов.

Worksheets("MainSheet").Range("A1").Select

With Selection.Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:= ***WorkSheetnames***
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = ""
    .ErrorTitle = ""
    .InputMessage = ""
    .ErrorMessage = ""
    .ShowInput = True
    .ShowError = True
End With

Итак, где ***WorkSheetnames***, я хотел бы поместить все имена рабочих листов

Может быть, что-то с

for i = 1 to application.sheets.count 
'Store data into array?
Names = sheets(i).name
next

Как я могу сделать это, не добавляя лист или что-то ..

1 Ответ

2 голосов
/ 15 апреля 2019

Вы почти достигли цели

Перед вашим кодом добавьте

Dim Shts As String
    For i = 1 To Sheets.Count
        Shts = Shts & ThisWorkbook.Sheets(i).Name & ","
    Next
    Shts = Left(Shts, Len(Shts) - 1)

тогда в пределах проверки сделать

Formula1:=Shts
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...