Пользовательская форма Excel VBA: как найти ячейку на основе строк, столбцов и вложенных столбцов, а затем ввести содержимое текстового поля? - PullRequest
0 голосов
/ 23 сентября 2018

У меня есть этот рабочий лист с датами в столбце B, именем в строке 1 и подзаголовками в строке 2. Я настроил эту форму пользователя, чтобы пользователь мог выбрать имя, выбрать тренинг и дату, а затем ввестиТип обучения покажет на эту дату.Однако теперь я застрял в том, как найти конкретную ячейку с выбранным именем и разместить ее в столбце обучения.Затем введите выбранную тренировку в ячейку.Вот названия вещей, которые я настроил до сих пор.

  • droplist_training: поле со списком для типа обучения
  • listbox_name_train: список для имен
  • OSC: имя рабочего листа

Я также определил строку имени как имя в рабочем листе.И вот код, который я разработал до сих пор, не могли бы вы, пожалуйста, дать мне несколько советов, так как я очень новичок в этом кодировании VBA? Отпечаток экрана Worsheet

{Private Sub cmd_enter_training_Click()
Dim find_date As Range
If Me.txtbox_train_from.Value = "" Th[enter image description here][1]en
   MsgBox "No starting date entered", , "Missing Entry"
Else
    Set find_date = 
Sheets("OSC").Range("b:b").find(What:=Me.txtbox_train_from.Value, _
                                      LookIn:=xlValues, _
                                      LookAt:=xlWhole, _
                                      SearchOrder:=xlByRows, _
                                      SearchDirection:=xlNext, _
                                      MatchCase:=False)
If find_date Is Nothing Then
MsgBox "Wrong date format entered" & Me.txtbox_train_from.Value, , "No Match 
Found"
    End If
    End If
Dim find_name As Range
Dim rngname As Range
Dim traincol As Range
Set ws = Worksheets("OSC")
 If Me.listbox_name_train.Value = "" Then
 MsgBox "Please select name", , "Missing Entry"
 Else
 Set find_name =Sheets("OSC").Range("name").find 
                                           (What:=Me.listbox_name_train _
                                            , LookIn:=xlValues _
                                            , LookAt:=xlWhole _
                                            ,SearchOrder:=xlByColumns _
                                            , SearchDirection:=xlNext _
                                                   , MatchCase:=False)                                                      
If find_name Is Nothing Then
    MsgBox "No match for " & Me.listbox_name_train.Value, , "No Match Found"
Set traincol = Sheets("OSC").Range("name").Range("train")
Else
      Sheets("OSC").Cells(find_date, traincol).End(xlUp).Offset(, 1) = 
  Me.droplist_training.Value
End If
End If

End Sub}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...