Я запускаю макрос, который извлекает данные из базы данных, а затем заполняет простое меню, используя эти данные. Эта функция прекрасно работает при запуске Excel 2016 на Win7, но когда пользователи на Win10 запускают макрос (также использующий Excel 2016), возникает ошибка в Selection.Validation .add: «1004 ошибка, определенная объектом или приложением». Любые мысли о том, что может вызвать эту ошибку в Win10 против Win7 и как я могу исправить ее для работы с обеими операционными системами?
Я бы предпочел не создавать отдельную вкладку для хранения данных проверки, если это возможно.
Function populateMenu()
Dim datafield As ADODB.Field
Dim datapull As Object
Dim conn As Object
Dim sqlQuery As String
Dim lobNames(200) As Variant
Dim elementCounter As Integer
Set conn = New ADODB.Connection
Set datapull = New ADODB.Recordset
conn.ConnectionString = CONNECTSTRING
conn.Open
sqlQuery = getLOBNames
datapull.Open sqlQuery, conn
elementCounter = 0
Do While Not datapull.EOF
For Each datafield In datapull.Fields
lobNames(elementCounter) = datafield.Value
elementCounter = elementCounter + 1
Next datafield
datapull.MoveNext
Loop
datapull.Close
conn.Close
Set datapull = Nothing
Set Connection = Nothing
'LOB Pull Down
Worksheets("Data").Select
Range("B3").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=Join(lobNames, ",")
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = "SELECT LOB"
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Function