Я вроде как новичок в VBA. Я пытаюсь работать с двумя списками: listbox1 (.lstdatabase) и listbox2 (.lstdatabase1). то, что я пытаюсь сделать, - это когда я нажимаю кнопку обновления стоимости, выбранные строки из listbox1 (.lstdatabse) переносятся в listbox2 (.lstdatabase1). при этом он передает только столбцы с 1 по 4 из listbox1 по мере необходимости. Мне удалось работать выше, подав судебные иски. Теперь я изо всех сил пытаюсь заполнить столбец 5 listbox2 (.lstdatabase1) (это значение из рабочего листа (Cost)) на основе ссылки на значение столбца 4 в listbox2 (.lstdatabase1). Коды, которые у меня указаны ниже: Private Sub cmdcostupdates_Click () With UserForm1.lstdatabase1
Dim sh As Worksheet Set sh = ThisWorkbook.Sheets ("cost")
.ColumnCount = 10
.ColumnHeads = True
.ColumnWidths = "40,60,60,60,60,100,100,250,80,80"
Dim i как целое число для i = 0 в UserForm3.lstDatabase.ListCount - 1
If UserForm3.lstDatabase.Selected(i) = True Then
UserForm1.lstdatabase1.AddItem
UserForm1.lstdatabase1.Column(0, (UserForm1.lstdatabase1.ListCount - 1)) = UserForm3.lstDatabase.Column(0, i)
UserForm1.lstdatabase1.Column(1, (UserForm1.lstdatabase1.ListCount - 1)) = UserForm3.lstDatabase.Column(1, i)
UserForm1.lstdatabase1.Column(2, (UserForm1.lstdatabase1.ListCount - 1)) = UserForm3.lstDatabase.Column(2, i)
UserForm1.lstdatabase1.Column(3, (UserForm1.lstdatabase1.ListCount - 1)) = UserForm3.lstDatabase.Column(3, i)
UserForm1.lstdatabase1.Column(4, (UserForm1.lstdatabase1.ListCount - 1)) = UserForm3.lstDatabase.Column(4, i)
UserForm1.lstdatabase1.Column(5, (UserForm1.lstdatabase1.ListCount - 1)) = Application.WorksheetFunction.VLookup(.List(3, i), Sheets("sh").Range("A1:G1000"), 7, False)
Может ли кто-нибудь помочь исправить код для vlookup? приведенный ниже код дает мне ошибку.
UserForm1.lstdatabase1.Column(5, (UserForm1.lstdatabase1.ListCount - 1)) = Application.WorksheetFunction.VLookup(.List(3, i), Sheets("sh").Range("A1:G1000"), 7, False)