Здравствуйте! Ребята помогите разобраться - при открытие формы происходит заполнение списка комбобокса с таблицы и ввод в поле комбобокса новых данных с ячейки (для комбобокса установлено свойство Style=2). [vba]
Код
FormLogbook.Cmb2.Value = DpdSheet.Range("D4").Value 'Ввод новых данных в поле комбобокса с ячейки.
[/vba] В зависимости от расположение строки (выше или ниже кода заполнения списка), вводимого значения (текстовый или числовой), свойства (Style=0 или Style=2) то выдает ошибку то работает без ошибки.
Здравствуйте! Ребята помогите разобраться - при открытие формы происходит заполнение списка комбобокса с таблицы и ввод в поле комбобокса новых данных с ячейки (для комбобокса установлено свойство Style=2). [vba]
Код
FormLogbook.Cmb2.Value = DpdSheet.Range("D4").Value 'Ввод новых данных в поле комбобокса с ячейки.
[/vba] В зависимости от расположение строки (выше или ниже кода заполнения списка), вводимого значения (текстовый или числовой), свойства (Style=0 или Style=2) то выдает ошибку то работает без ошибки.Сергей13
Private Sub UserForm_Initialize() 'Событие открытия формы FormLogbook
Set GroupSheet = ThisWorkbook.Worksheets("group") 'Лист group Set DpdSheet = ThisWorkbook.Worksheets("dpd") 'Лист dpd Dim v As Variant, tabl_art As Range v = CStr(DpdSheet.Range("D4").Value): Set tabl_art = GroupSheet.Range("tabl_art") With FormLogbook.Cmb2 .List = GetArr(GroupSheet.Range("tabl_art")) 'Загрузка данны, заполнение списка If tabl_art.Find(v, , xlValues, xlWhole, , , , , False) Is Nothing Then .AddItem v With tabl_art(tabl_art.Rows.Count + 1, 1) .NumberFormat = "@": .Value = v End With End If .Value = v 'Ввод новых данных в поле комбобокса End With End Sub
[/vba] при Style=fmStyleDropDownList(0) свойство Value может принимать только значения, перечисленные в свойстве List
Здравствуйте [vba]
Код
Private Sub UserForm_Initialize() 'Событие открытия формы FormLogbook
Set GroupSheet = ThisWorkbook.Worksheets("group") 'Лист group Set DpdSheet = ThisWorkbook.Worksheets("dpd") 'Лист dpd Dim v As Variant, tabl_art As Range v = CStr(DpdSheet.Range("D4").Value): Set tabl_art = GroupSheet.Range("tabl_art") With FormLogbook.Cmb2 .List = GetArr(GroupSheet.Range("tabl_art")) 'Загрузка данны, заполнение списка If tabl_art.Find(v, , xlValues, xlWhole, , , , , False) Is Nothing Then .AddItem v With tabl_art(tabl_art.Rows.Count + 1, 1) .NumberFormat = "@": .Value = v End With End If .Value = v 'Ввод новых данных в поле комбобокса End With End Sub
[/vba] при Style=fmStyleDropDownList(0) свойство Value может принимать только значения, перечисленные в свойстве Listkrosav4ig
krosav4ig, Приветствую! Походу неверно изложил сказанное выше «ввод в поле комбобокса новых данных», при этом в тестовом примере не вписал в таблицу данные идентичные данным в ячейке переменной v. Имеется ввиду что данные новые но уже ранее введены в таблицу иным кодом их необходимо лишь при активации данной формы отобразить в поле комбобокса взяв из нужной ячейки и все. Последовательность выполнения такова: [vba]
Код
FormLogbook.Cmb2.List = GetArr(GroupSheet.Range("tabl_art")) 'Загрузка данных с таблицы tabl_art FormLogbook.Cmb2.Value = v 'Отобразить в поле комбобокса данные переменной v которые уже имеются в загруженном списке
[/vba]
krosav4ig, Приветствую! Походу неверно изложил сказанное выше «ввод в поле комбобокса новых данных», при этом в тестовом примере не вписал в таблицу данные идентичные данным в ячейке переменной v. Имеется ввиду что данные новые но уже ранее введены в таблицу иным кодом их необходимо лишь при активации данной формы отобразить в поле комбобокса взяв из нужной ячейки и все. Последовательность выполнения такова: [vba]
Код
FormLogbook.Cmb2.List = GetArr(GroupSheet.Range("tabl_art")) 'Загрузка данных с таблицы tabl_art FormLogbook.Cmb2.Value = v 'Отобразить в поле комбобокса данные переменной v которые уже имеются в загруженном списке