VBA: имя в массиве - PullRequest
1 голос
/ 30 марта 2020

У меня есть одна ячейка со всеми именами листов, напишите таким образом: «Лист1», «Лист2», «Лист3». Поэтому я вставляю это значение в одну переменную SheetNames как String.

Теперь мне нужно получить имя одного листа и вставить. Мой код:

varSheets = Array(FogliArray)
    'varSheets = Array("Other", "Research", "IT")

    lngShtCnt = 0
    On Error Resume Next
    For Each varSheet In varSheets
        With wkbSource.Worksheets(varSheet)

Если я использую varSheets = Array ("Other", "Research", "IT"), все работает правильно. Но если я использую varSheets = Array (FogliArray), где FogliArray - это переменная, которая содержит все имена листов («Другое», «Исследования», «IT») не работает.

Пожалуйста, вы можете мне помочь? Большое спасибо, Андреа.

1 Ответ

3 голосов
/ 30 марта 2020

Используйте Split для возврата массива имен листа, Replace кавычки и Trim$ пробелы, что-то вроде следующего:

Sub Test()
    Dim FogliList As String
    FogliList = Sheet1.Range("A1").Value
    FogliList = Replace(FogliList, """", "") ' no quotes

    Dim FogliArray
    FogliArray = Split(FogliList, ",")

    Dim i As Long
    For i = LBound(FogliArray) To UBound(FogliArray)
        Dim FoglioName As String
        FoglioName = Trim$(FogliArray(i))

        With wkbSource.Worksheets(FoglioName)
            ' Do whatever you wanted to do
        End With
    Next
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...