Преобразовать вариант в строку - PullRequest
0 голосов
/ 29 мая 2020

У меня есть список на моем основном рабочем листе, содержащий имена листов в книге. Я пытаюсь перебрать их, но функция Worksheets ожидает String, а значения в списке возвращают типы Variant. Я получаю ошибку несоответствия типа, когда пытаюсь получить доступ к рабочему листу с выражением Variant. Как преобразовать вариант в строку или есть другой способ сделать это?

Dim allws As Range
Set allws = Worksheets("Summary").Range("A4:A21").Columns(1)
Dim str As String
str = allws.Item(1).Value 'Type mismatch
Set ws = Worksheets(str)

1 Ответ

1 голос
/ 29 мая 2020

Это вызывает массив. Подробней в комментариях:

Dim allws As Range
Set allws = Worksheets("Summary").Range("A4:A21") ' no need for .Columns

Dim arr() as Variant
arr = allws.Value ' read the value into a 2D Variant array

Dim i as Long
For i = Lbound(arr, 1) to Ubound(arr, 1)
    Dim ws as Worksheet
    Set ws = Worksheets(arr(i))
Next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...