Добавьте значение в ячейку, используя текстовое поле, если оно пустое

137
13

У меня есть пользовательская форма, в которой есть много текстовых полей и одно поле со списком, значение выпадающего списка происходит из листа Excel. Я хочу, если ячейки A, F, J, K пустые, я хочу, чтобы их вручную вводили через текстовое поле, если они доступны, тогда они должны быть видны в текстовом поле. Пожалуйста, найдите код.

Private Sub cbox5_Change()
Dim r As Long
Dim wks As Worksheet
Set wks = Worksheets("Sheet2")
r = cbox5.ListIndex + 2
On Error Resume Next
If wks.Cells(r, "R") = "" Then
txt8.Value = wks.Cells(r, "N")
Else
txt8.Value = wks.Cells(r, "R")
End If
txt10.Value = wks.Cells(r, "F")
txt11.Value = wks.Cells(r, "A")
txt16.Value = wks.Cells(r, "J")
txt17.Value = wks.Cells(r, "K")
If cbox5.Value = "" Then
Sheets("Sheet2").Select
Range("A65536").Select
Selection.End(xlUp).Select
ActiveCell.Offset(1).Select
Me.txt8.Value = ""
Me.txt9.Value = ""
Me.txt10.Value = ""
Me.txt11.Value = ""
Me.txt15.Value = ""
Me.txt16.Value = ""
End If
End Sub

Также я не могу видеть значение в поле со списком до тех пор, пока пользовательская форма не будет закрыта и не будет открыта снова. Может ли кто-нибудь сообщить мне, что может вызвать эту проблему? Где мне нужно изменить код?

Я не могу заставить этот код работать:

If wks.Cells(r, "D") = "" Then
wks.Cells(r, "D").Value = Me.txt9.Value
Else
txt9.Value = wks.Cells(r, "D")
End If

спросил(а) 2021-01-19T15:03:43+03:00 9 месяцев назад
1
Решение
102

Мне кажется, что вы OnChange combobox в событии OnChange для combobox. Ваш пользователь не сможет ничего выбрать из cbox5 потому что в нем ничего нет, поэтому он никогда не будет запущен. Вам нужно поместить код для заполнения combobox в событиях Initialize или Activate.

ответил(а) 2021-01-19T15:03:43+03:00 9 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема