Пытаетесь использовать функцию рабочего листа в форме пользователя? - PullRequest
0 голосов
/ 08 июля 2020

У меня есть текстовое поле произвольной формы, которое я хотел бы заполнить значением после ввода значения в текстовое поле выше (txtStore) <- на основе числа 4 di git. </p>

вот код, который я пытался, но не уверен, нужны ли другие подпрограммы (логические логики c) для запуска чего-либо?

Dim ws as worksheet
Private Sub txtMall_Change()
    Set ws = Worksheets("Lists")
    Dim txtStore As Integer: txtStore = Me.txtStore.Value
    txtMall.Value = Application.WorksheetFunction.IfError(VLookup(txtStore, ws.Range("A2:B1047", 2, False)), "-")
End Sub

как я могу заставить txtMall заполняться на основе этого функция листа после того, как значение будет помещено в текстовый ввод txtStore? Нужно ли мне изменить процедуру на что-то другое, например, с выпадающим списком?

1 Ответ

2 голосов
/ 08 июля 2020

Не проверено:

Private Sub txtStore_Change()
    Dim r
    'Avoid possible run-time error on no match by skipping WorksheetFunction
    '  Instead test the return value for errors 
    r = Application.VLookup(CLng(Me.txtStore.Value), _
                            Worksheets("Lists").Range("A2:B1047"), 2, False)
    txtMall.Value = IIf(iserror(r), "'-", r)
End Sub
...