Функция списка элементов в строку Excel-VBA - PullRequest
0 голосов
/ 01 мая 2019

У меня есть пользовательская форма, которая позволяет пользователю передавать элемент из ListBox1 в ListBox2.

Элементы в ListBox2 должны быть именами файлов Excel, которые необходимо импортировать.

У меня есть общее представление о том, как это может работать, но я застрял с проблемой, что я не могу открыть файл с именем элемента в ListBox2.

У меня вопрос: можно ли "преобразовать" имя элемента в Listbox в строку, чтобы его можно было использовать в качестве имени файла для открытия файла?

Я пытался использовать MsgBox для проверки, возвращает ли аргумент Listbox2(i) / ListBox2.Name(i) / ListBox2.List(i) какие-либо значения, но, к сожалению, это не так. Это всегда показывает пустым.

'This is the part where I try to open the files indicated in ListBox2
Dim directory = "my directory is here"

For i = 0 To ListBox2.ListCount - 1

        Application.Workbooks.Open Filename:= directory & "\" & "FinalExcel.xlsx" 'This one is for testing to open file and it works.
        Application.Workbooks.Open Filename:= directory & "\" & ListBox2(i)

Next

1 Ответ

0 голосов
/ 01 мая 2019

Как упоминалось в комментариях, правильный способ ссылаться на ListBox элементы в виде массива - через маршрут ListBox.List(i).

Также хорошей практикой будет сначала проверить, является лиListBox пусто, потому что попытка открыть пустой файл (из-за несуществующего поля ListBox) приведет к ошибке !

If Not ListBox2.ListCount = 0 Then
  For i = 0 To ListBox2.ListCount - 1
     Application.Workbooks.Open Filename:= directory & "\" & ListBox2.List(i)
  Next i
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...