Требуется ошибка объекта при запуске макроса Excel из текстового поля - PullRequest
0 голосов
/ 01 мая 2020

При выполнении макроса, который я назначил для текстового поля, я получаю сообщение об ошибке "Требуется объект".

Я скопировал макрос из другого файла Excel, который имеет только один лист. Там все работает нормально и генерирует скрипт вставки на основе данных на листе.

Этот макрос я вставляю в другую книгу на 4-м листе (эта книга имеет 4 листа). Ниже используется макрос:

Sub GetInsertSQL()
    Dim wsSrc As Worksheet: Set wsSrc = ActiveSheet
    Dim LastRow As Long: LastRow = wsSrc.UsedRange.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    Dim LastCol As Long: LastCol = wsSrc.UsedRange.Find("*", Sear chOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
    Dim i As Long, j As Long
    Dim strQuery As String
    Dim strOutput As String

    strQuery = ""
    For j = 1 To LastCol
        strQuery = strQuery + "[" + CStr(wsSrc.Cells(1, j)) + "], "
    Next j
    strQuery = Left(strQuery, Len(strQuery) - 2)
    strQuery = "insert into [" + wsSrc.Name + "] (" + strQuery + ")"
    strOutput = strQuery + Chr(13) + Chr(10) + "values"

    For i = 2 To LastRow
        strQuery = ""
        'Adding this if condition to check if value in 1st column is New
        If (LCase(wsSrc.Cells(i, 1).Text) = "new") Then
            For j = 2 To LastCol
                strQuery = strQuery + "'" + Replace(CStr(wsSrc.Cells(i, j).Text), "'", "''") + "', "
            Next j

            strQuery = "(" + Left(strQuery, Len(strQuery) - 2) + "), "
            strOutput = strOutput + Chr(13) + Chr(10) + strQuery
        End If
    Next i

    strOutput = Left(strOutput, Len(strOutput) - 2)
    OutputForm.txtOutput.Text = strOutput
    OutputForm.Show vbModal
End Sub

Это что-то с тем, как я делаю копирование и вставку?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...