При выполнении макроса, который я назначил для текстового поля, я получаю сообщение об ошибке "Требуется объект".
Я скопировал макрос из другого файла 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
Это что-то с тем, как я делаю копирование и вставку?