Я новичок в Excel VBA Userform .. Я хочу решить следующие 2 проблемы:
1) У меня три имени в текстовом поле: имя клиента, номер мобильного телефона и идентификатор электронной почты -> Я получаю это данные из Sheet1, которые похожи на базу данных, в которой хранятся все эти три столбца и которые время от времени меняются Далее у меня есть зависимый комбинированный список с другим текстовым полем -> Эти два выступают как родитель и дочерний элемент, где комбинированный список является родительским, а текстовое поле является дочерним элементом любого элемента, выбранного в комбинированном списке, который скрипт элемента отобразит в текстовом поле.
Для экзамена: Combobox если я выберу пункт «машина», то его сценарий будет отображаться в дочернем текстовом поле как «имя с новым автомобилем, его номер мобильного телефона: & идентификатор электронной почты:», так же, как у меня такие сценарии до 200.
Я хочу заполнить данные первых трех текстовых полей, которые отображаются в этой пользовательской форме, непосредственно в этом скрипте, как показано ниже:
Если имя клиента - Джон, номер мобильного телефона 132132132 и идентификатор электронной почты test@test.com Когда пользователь выбирает автомобиль из родительского списка. затем в этом текстовом поле будут заполнены данные типа «У Джона новая машина, его номер мобильного телефона: 132132132 и идентификатор электронной почты: test@test.com», чтобы я мог сохранять данные в Sheet2
и из этих 200 сценариев данные клиента изменят свою позицию в сценарии. означает, что имя клиента в нескольких сценариях будет отображаться в конце сценария.
2) У меня есть еще два текстовых поля в той же форме с кнопкой обновления только для них: одно текстовое поле для ввода языка, на котором говорит пользователь, и другое текстовое поле для даты и время (текущее или заданное c дата и время). Как только я ввожу язык клиента говорит по-английски sh и текущую дату и время, я нажимаю кнопку обновления, и эти два значения в текстовом поле должны быть сохранены в нескольких сценариях, которые я объяснил выше.
Примеры:
"У Джона новая машина, номер его мобильного телефона: 132132132 и идентификатор электронной почты: test@test.com, язык общения был английский sh, время посещения, текущая дата и время" "I встретиться с Кираном по дате и времени, затем он попросил мой контактный номер и идентификатор электронной почты. Язык общения был Германия "
в приведенном выше примере два, я должен использовать все значения текстового поля в каком-то сценарии, мне нужно использовать только имя клиента.
Я вызываю данные клиента с помощью кнопки поиска, которая будет извлекать данные из листа1. Все работает как извлечение и сохранение данных на листах, но я не смог найти опцию, которая подходит для двух вышеупомянутых сценариев ios.
пожалуйста, если вы можете поделиться точным кодом, это будет полезно, так как я попытался с конкатенацией непосредственно на листе с опцией обрезки что-то, что пошло не так, поэтому я получил структуру с этим о том, как подойти.
Большое спасибо заранее
Редактировать: Конечно, вы найдете подробности ниже и спасибо за ваше обновление
Ниже приведен вид пользовательской формы.
Итак, кадр сведений о клиенте, который я использовал для листа1, где хранится моя база данных, и будет отображаться в форме при нажатии кнопки поиска. Для кода кнопки поиска -
`Private Sub CommandButton3_Click()
Dim Cust_Name As String
Cust_Name = Trim(TextBox1.Text)
LastRow = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To LastRow
If Worksheets("Sheet1").Cells(i, 1).Value = Cust_Name Then
TextBox1.Text = Worksheets("Sheet1").Cells(i, 2).Value
TextBox2.Text = Worksheets("Sheet1").Cells(i, 3).Value
TextBox3.Text = Worksheets("Sheet1").Cells(i, 4).Value
End If
Next
End Sub`
Для дополнительных сведений. Ниже у меня есть код для двух текстовых полей, в которые нам нужно ввести вручную язык, на котором будет говорить, введите Engli sh или любой другой язык и дату и время
Итак, для отображения времени я использовал код Me.TextBox10.Value = Format(Now, "dd/mm/yyyy hh:mm:ss")
И для сценария Windows фрейм для зависимого поля со списком и текстовое поле скрипта ниже кода, используемого
`Private Sub ComboBox1_Change()
Dim i As Long, LastRow As Long
LastRow = Sheets("Sheet2").Range("F" & Rows.Count).End(xlUp).Row
For i = 2 To LastRow
If Sheets("Sheet2").Cells(i, "F").Value = (Me.ComboBox1) Then
Me.TextBox5 = Sheets("Sheet2").Cells(i, "G").Value
End If
Next
End Sub`
`Private Sub ComboBox1_DropButtonClick()
Dim i As Long, LastRow As Long
LastRow = Sheets("Sheet2").Range("F" & Rows.Count).End(xlUp).Row
If Me.ComboBox1.ListCount = 0 Then
For i = 2 To LastRow
Me.ComboBox1.AddItem Sheets("Sheet2").Cells(i, "F").Value
Next i
End If
End Sub`
Итак, из фрейма «Сведения о клиенте» я хочу, чтобы все детали помещались внутри скрипта. когда я выбираю сценарий из раскрывающегося списка, а также из фрейма «Extra Details», когда я вручную вводю данные и нажимаю кнопку «Обновить», эти данные также необходимо обновить в этом текстовом поле «Сценарий».
В соответствии с изображением, которым я поделился, и подробностями выше, это то, что мне нужно получить в конечном результате. У Джона новая машина, номер его мобильного телефона: 123456789 и идентификатор электронной почты: test@test.com, язык общения был английский sh, время посещения текущее 14-04-2020 12:46:33
Это что мне нужно в моем последнем модифицированном скрипте, который я могу сохранить в листе с кодом ниже.
`Private Sub CommandButton1_Click()
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Sheet4")
Dim n As Long
n = sh.Range("A" & Application.Rows.Count).End(xlUp).Row
sh.Unprotect "test"
sh.Range("A" & n + 1).Value = Me.TextBox1.Value
sh.Range("B" & n + 1).Value = Me.TextBox2.Value
sh.Range("C" & n + 1).Value = Me.TextBox3.Value
sh.Range("E" & n + 1).Value = Me.TextBox5.Value
sh.Protect "test"
End Sub`
Что-нибудь еще нужно, дайте мне знать спасибо.