Я новичок в vba и пытаюсь создать форму, содержащую список элементов из другой книги Excel.
Это таблица, сохраненная в другой книге Excel, где я хочу взятьданные:
Мне нужно, чтобы мой комбинированный список брал предметы из диапазона ("C2"), который принимает в качестве 1-го элемента "Petronor", пока не найдет 1-й пробел в строке.
Я сделал это:
Private Sub UserForm_Initialize()
Dim archivo As Workbook
Dim i As Long
Set archivo = Workbooks.Open("C:\Users\se72497\Desktop\Departamentos.xlsx")
For i = 2 To archivo.Sheets("Hoja1").Range("C2").End(xlDown).Offset(1, 0).Row
ComboBox1.AddItem archivo.Sheets("Hoja1").Cells(i, 3).Value
Next i
archivo.Close
End Sub
1) Во-первых, я создаю переменную, содержащую файл, в который я хочу получить данные:
Dim archivo As Workbook
Set archivo = Workbooks.Open("C:\Users\se72497\Desktop\Departamentos.xlsx")
2) После этогос циклом For Next Я попробовал код пройти все элементы из диапазона ("C2") до 1-го пробела в этой строке. Я должен сказать этот код, который я сделал из другого, который я видел, и я все еще пытаюсь понять, как это работает, потому что я совсем не уверен, хотя я знаю обо всех свойствах, которые используются. Я запутался в свойстве range.row, потому что не знаю, как оно работает. Я надеюсь, что кто-то может объяснить мне это тоже.
Dim i As Long
For i = 2 To archivo.Sheets("Hoja1").Range("C2").End(xlDown).Offset(1, 0).Row
ComboBox1.AddItem archivo.Sheets("Hoja1").Cells(i, 3).Value
Next i
3) Наконец, я добавил кусок кода, чтобы закрыть файл, который я открыл ранее:
archivo.Close
Проблема этого кодачто я получаю пробел в последнем поле комбинированного списка, как это:
Пожалуйста, помогите мне решить эту проблему, и я готов услышать улучшения в коде.