#excel #vba
Вопрос:
Я пытался написать код для извлечения данных из таблицы, введя данные строк и столбцов и отобразив результат в списке для выбора.
Итак, у меня есть форма пользователя, и я пытаюсь ввести данные о стране и количестве, в таблице, которая у меня есть, заголовок столбца «Страна» и заголовок строки «Количество», поэтому в зависимости от данных, введенных пользователем, в списке будет отображаться разная цена отправки.
Вот фотография моей формы пользователя
Private Sub CommandButton1_Click()
'to search and display in listbox when search button is pressed'
Dim Col As Integer
Dim Row As Integer
cmbCountry.Value("Australia") = 1
cmbCountry.Value("Belgium") = 2
cmbCountry.Value("Canada") = 3
cmbCountry.Value("China") = 4
cmbCountry.Value("China (ET)") = 5
cmbCountry.Value("India") = 6
cmbCountry.Value("Mexico") = 7
cmbCountry.Value("Netherland") = 8
cmbCountry.Value("Peru") = 9
cmbCountry.Value("UK") = 10
cmbCountry.Value("USA") = 11
Row = cmbCountry.Value
Col = txtquant.Value
Price = Sheets("Despatch").DesTable(Row, Col)
ListBox1.AddItem Sheets("Data").Cells(Rowm, 1).Value
ListBox1.List(ListBox1.ListCount - 1, 1) = Sheets("Data").Cells(Row, 2).Value
End Sub
Ответ №1:
Это мой код, надеюсь, это поможет
Private Sub UserForm_Activate()
' better using event Activate to dynamically change the data
' extract country list from table
' so you can add or remove country directly from your tabel
CountryListArray = Sheet1.ListObjects("DetailTabel").DataBodyRange.Columns(1).Value
CountryList.List = CountryListArray
End Sub
И этот код для выбора из ячейки в таблице на основе выбранной страны и количества
Private Sub CountryList_Click()
' check if quantity blank or not
Quantity = QuantityText.Value
If Quantity = "" Then
MsgBox "You have fill quantity field"
Else
' if quantity field has filled
LabelDespatch.Caption = Sheet1.ListObjects("DetailTabel").DataBodyRange.Cells(CountryList.ListIndex 1, Quantity 1)
End If
Конец Суб