Bagaimana cara menggunakan nilai dalam kotak daftar di VBA?

Jadi saya punya kotak daftar dengan nilai di dalamnya. Tujuannya adalah mengklik item, lalu mengisi kotak daftar terpisah dengan data yang cocok. Saya dapat menangani kecocokan dan populasi untuk kotak daftar kedua, tetapi saat ini kode saya tidak mengembalikan nilai ketika saya memilih item di kotak daftar pertama. Saya dapat melihat bahwa nilai saya tidak dikembalikan karena kode rusak pada baris tempat saya menetapkan nilai sel ke variabel "nama" yang saya gunakan:

Private Sub ListBox1_Click()
    Dim iCnt As Long
    Dim name As Variant

    For iCnt = 0 To Me.ListBox1.ListCount - 1
        If ListBox1.Selected(iCnt) = True Then
            name = Me.ListBox1.List(iCnt)
            ThisWorksheet.Sheets("Program").Range("K6").Value = name
        End If
        'subsequent match and populate will go here.

End Sub

Bagaimana cara memperbaiki sintaksis saya untuk mengembalikan nilai string dari item yang dipilih sehingga saya dapat menggunakannya untuk pencocokan berikutnya?


person Poppenhoffer    schedule 14.10.2019    source sumber
comment
Dimana Next iCntmu?   -  person Tom    schedule 14.10.2019
comment
Tutorial ini dapat membantu Anda memulai.   -  person Storax    schedule 14.10.2019
comment
Maaf, aku memotongnya sedikit. Saya memiliki semua Next dan End Ifs saya di sana, hanya saja kodenya salah. Diposting jawabannya di bawah ini. Bahkan tidak memerlukan perulangan For, cukup perintah yang tepat.   -  person Poppenhoffer    schedule 14.10.2019
comment
Beberapa petunjuk: 1) ThisWorksheet.Sheets("Program")…. salah dan akan memunculkan pesan kesalahan, seharusnya: ThisWorkBook.Worksheets("(Program")... atau hanya merujuk ke .CodeName sheet, 2) .List memerlukan referensi 2 dimensi termasuk indeks baris plus kolom berbasis 0, tidak hanya (ListBox1.List(iCnt), 3) Anda tidak perlu mengulang ke seluruh daftar kotak daftar untuk mendapatkan ListBox1.ListIndex berbasis nol yang sebenarnya, 4) hindari membaptis variabel name, yaitu jangan membebani nama metode atau fungsi yang ada sehingga Anda dapat mendapat masalah.   -  person T.M.    schedule 14.10.2019


Jawaban (1)


name = Me.ListBox1.Value

Ini adalah kode yang benar

person Poppenhoffer    schedule 14.10.2019