У меня есть поле со списком (называемое userBox
) в листе под названием Home
. Он имеет один из выбранных вариантов, допустим, "User A"
. Все, что я пытаюсь сделать, это назначить "User A"
нанизывать usr
, но я получаю ошибку компиляции:ActiveX ComboBox метод или элемент данных не найден
Method or data member not found
Sub fixPls()
Dim row As Integer, col As Integer, usr As String, tbl As String, found As Boolean, k As Integer, payType As String
Set wb = ThisWorkbook
Set ws = wb.Sheets("Home")
ws.Activate
Application.DisplayAlerts = False
Application.ScreenUpdating = False
lastRow = Range("B16").End(xlUp).row
usr = ws.userBox.Value
tbl = ws.tblBox.Value
payType = ws.tpBox.Value
....
EDIT: Я пытался фиктивную программу в новой книге, и она работала. С помощью comboBox activeX, почему он отличается?
Sub blah()
Dim rly As String
rly = Sheets(1).ComboBox1.Value
ThisWorkbook.Sheets(1).Cells(1, 10) = rly
End Sub
Сотовый J1 возвращает значение, выбираемое в comboBox.
К сожалению, я редактировал пост с тех пор. Моя фиктивная программа работает при использовании комбобокса ActiveX и извлечения значения с использованием .combobox.value в пределах области листа. – notout50
Вы не можете использовать объект «Worksheet» для доступа к «OLEObject», как вы делаете в первом примере. Если вы объявите свой рабочий лист как «Вариант» или «Объект», он должен работать. Или просто используйте 'OLEObjects()', как я показал выше, что является рекомендуемым способом доступа к элементам управления ActiveX. Тогда это будет работать независимо. – Bond
Большое спасибо за объяснение, это действительно помогает, приветствует. – notout50