VBA Выбрать лист для импорта |
Public Sub ImpChT() Dim appX As Excel.Application Dim wB As Excel.Workbook Dim wS As Excel.Worksheet Dim dbs As DAO.Database Dim rst As DAO.Recordset Dim rsE As DAO.Recordset Dim i As Long Set appX = CreateObject("Excel.Application") Set wB = appX.Workbooks.Open(Forms![f].[Поле6].Value) Set dbs = CurrentDb Set rst = dbs.OpenRecordset("Таблица") Set wS = wB.Sheets(1) With wS For i = 2 To .Cells(.Rows.Count, "B").End(xlUp).Row If Len(wS.Cells(i, "B")) > 0 Then With rst .AddNew On Error GoTo ErN ![поле] = wS.Cells(i, "A") ![поле] = wS.Cells(i, "B") ![поле] = wS.Cells(i, "C") On Error GoTo 0 .Update End With End If Next End With rst.Close: Set rst = Nothing dbs.Close: Set rst = Nothing wB.Close: Set wB = Nothing appX.Quit: Set appX = Nothing MsgBox "Импорт Завершён" If DCount("[Name]", "MSysObjects", "[Name] = 'Errors_Таблица'") > 0 Then MsgBox "Найдены ошибки в строках(см. таблицу Errors_Таблица)" End If Exit Sub ErN: Select Case Err.Number Case 3421: If DCount("[Name]", "MSysObjects", "[Name]='Errors_Таблица'") = 0 Then CurrentDb.Execute "CREATE TABLE Errors_Таблица(RowNumbers INT)" End If Set rsE = dbs.OpenRecordset("Errors_Таблица") With wS With rsE .AddNew ![RowNumbers] = wS.Cells(i, "A") .Update End With End With rsE.Close: Set rsE = Nothing Resume Next Case Else End Select End Sub
... Dim sn As String ... sn = CInt(Forms![Форма].[Поле].Value) ... Set wS = wB.Sheets(sn) ...
http://www.sql.ru/forum/1267451/vba-vybrat-list-dlya-importa
Комментировать | « Пред. запись — К дневнику — След. запись » | Страницы: [1] [Новые] |