2016-03-23 19 views
0

Access'ten Excel dosyası aracılığıyla döngü sorunlu yaşıyorum.Erişim VBa - Excel sütunları aracılığıyla döngü

 Sub Xceltest() 

     Dim XcelApp As Object 
     Dim XcelBook As Excel.Workbook 
     Dim x, i 
     Set XcelApp = CreateObject("Excel.Application") 
     XcelApp.ScreenUpdating = False 

Set XcelBook = XcelApp.Workbooks.Open("C:\Users\Lucky\Desktop\Test\Sample.xlsx") 

    With XcelBook 

i = XcelApp.Rows(1).Find(What:="Število", LookIn:=xlValues, Lookat:=xlWhole).Column 

x = XcelApp.Range(XcelApp.Cells(1, i), XcelApp.Cells(XcelApp.Rows.Count, i).End(xlUp)).Value 

     For i = 2 To UBound(x) 
      If Not IsNumeric(x(i, 1)) Then 

      ExcelApp.Quit 
      Set ExcelApp = Nothing 
      MsgBox "This Excel file is not valid" 
     : Exit Sub 

      End If 

     Next i 

     End With 

     XcelApp.Quit 
     XcelApp = Nothing 

     End Sub 

Ne yaparsam yapayım, hep bu çizgide bir hata alıyorum:

i = XcelApp.Rows(1).Find(What:="Število", LookIn:=xlValues, Lookat:=xlWhole).Column 

veya bunu daha:

For i = 2 To UBound(x) 

Hatalar vardır "nesne değildir İşte benim kodudur bu özelliği veya yöntemi "veya" nesne değişkenini veya ayarlanmamış blok değişkenini "destekler. Bunu nasıl düzeltebilirim, kimsenin bir ipucu var mı? Şimdi Düzgün çalışır,

Sub Xceltest() 

     Dim XcelApp As Object 

     Dim x, i 
     Set XcelApp = CreateObject("Excel.Application") 
     XcelApp.ScreenUpdating = False 

     XcelApp.Workbooks.Open("C:\Users\Lucky\Desktop\Test\Sample.xlsx") 

    With XcelApp 

i = XcelApp.Rows(1).Find(What:="Število", LookIn:=xlValues, Lookat:=xlWhole).Column 

x = XcelApp.Range(XcelApp.Cells(1, i), XcelApp.Cells(XcelApp.Rows.Count, i).End(xlUp)).Value 

     For i = 2 To UBound(x) 
      If Not IsNumeric(x(i, 1)) Then 

      ExcelApp.Quit 
      Set ExcelApp = Nothing 
      MsgBox "This Excel file is not valid" 
     : Exit Sub 

      End If 

     Next i 

     End With 

     XcelApp.Quit 
     XcelApp = Nothing 

     End Sub 

Sadece koddan ExcelBook kaldırmak zorunda: Ben manged olan

+0

Arama değeri bu satırda bulunamazsa, nesne değişken hatası alırsınız. – Rory

+0

Ama öyle. 1 satırda ben sütun "Število" adlı sahiptir. Ben bahsetmeyi unuttum - bu kod 2 hafta boyunca düzgün çalıştı, şimdi anlıyor ... – LuckyLuke82

+0

Yapıyor: 'i = XcelApp.Match (" Število ", XcelApp.Rows (1), 0)' çalışma? – Rory

cevap