Проверка данных VBA работает при запуске Excel 2016 на Win7, но не на Windows 10 - PullRequest
0 голосов
/ 30 апреля 2019

Я запускаю макрос, который извлекает данные из базы данных, а затем заполняет простое меню, используя эти данные. Эта функция прекрасно работает при запуске 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...