Текстовые поля не заполняются при выделении в выпадающем списке

Вы получаете текст кнопки в свою переменную только один раз, поэтому получаете только начальное состояние. Для вашей кнопки изменения вам нужно будет получить текст кнопки каждый раз, когда вы нажимаете кнопку, то есть внутри обработчика кликов.

$('button').click(function() { 
    var buttonText= $('button').text(); //get button text each time you click the button
    if (buttonText=='day') { 
        $('body').css({ 'background':'red' }) 
        $('button').text('night');
    } else if (buttonText=='night') { 
        $('body').css({ 'background':'yellow' }) 
    } 
})
0
задан Pᴇʜ 21 January 2019 в 07:45
поделиться

2 ответа

Вы можете избежать петли все вместе. Используйте метод Range.Find для поиска вашего значения в Me.cboCo. Если ваше значение найдено, мы заполним ваши текстовые поля строкой.

Вы можете изменить параметры метода .Find для оптимизации поиска. Смотрите здесь

<час>
Private Sub cboCo_Change()

Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet3")
Dim Found As Range, i As Long

Set Found = ws.Range("A:A").Find(Me.cboCo)

If Not Found Is Nothing Then
  i = Found.Row
    Me.txtContact = ws.Cells(i, "B")
    Me.txtPhone = ws.Cells(i, "C")
    Me.txtEmail = ws.Cells(i, "D")
    Me.txtCoAdd = ws.Cells(i, "E")
    Me.txtWebSite = ws.Cells(i, "F")
    Me.txtServProd = ws.Cells(i, "G")
    Me.txtAccred = ws.Cells(i, "H")
    Me.txtStanding = ws.Cells(i, "I")
    Me.txtSince = ws.Cells(i, "J")
    Me.txtNotes = ws.Cells(i, "K")
    Me.txtVerified = ws.Cells(i, "L")
    Me.txtToday = ws.Cells(i, "M")
    Me.cboYrApprv = ws.Cells(i, "N")
    Me.txtApprvBy = ws.Cells(i, "O")
    Me.txtAprvReas = ws.Cells(i, "P")
    Me.txtOrder = ws.Cells(i, "Q")
    Me.txtPurchs = Sheets("VendorList").Cells(i, "R")
    Me.cboCat = Sheets("VendorList").Cells(i, "S")
End If

End Sub
0
ответ дан urdearboy 21 January 2019 в 07:45
поделиться

Вот попробуйте это и посмотрите, решит ли это вашу проблему. Этот код в основном делает то же самое, но работает в памяти, а не слишком много взаимодействует с объектами.

Private Sub cboCo_Change()
    Dim i As Long
    dim arr as variant
    arr=thisworkbook.worksheets("Sheet3").UsedRange
    For i = 2 To UBound(arr,1)
        If arr(i, 1) = Me.cboCo.value Then
           Me.txtContact = arr(i, 2)
           Me.txtPhone = arr(i, 3)
           Me.txtEmail = arr(i, 4)
           Me.txtCoAdd = arr(i, 5)
           Me.txtWebSite = arr(i, 6)
           Me.txtServProd = arr(i, 7)
           Me.txtAccred = arr(i, 8)
           Me.txtStanding = arr(i, 9)
           Me.txtSince = arr(i, 10)
           Me.txtNotes = arr(i, 11)
           Me.txtVerified = arr(i, 12)
           Me.txtToday = arr(i, 13)
           Me.cboYrApprv =arr(i, 14)
           Me.txtApprvBy = arr(i, 15)
           Me.txtAprvReas = arr(i, 16)
           Me.txtOrder = arr(i, 17)
           Me.txtPurchs = arr(i, 18)
           Me.cboCat = arr(i, 19)
        End If
    Next i
    FormName.Repaint
End Sub
0
ответ дан Doug Coats 21 January 2019 в 07:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: