Makro wczytujące dane z arkusza kalkulacyjnego

0

Cześć,

chciałbym nieco zoptymalizować u siebie proces, mianowicie codziennie wpada mi raport na zasób sieciowy w formie zwykłego rozszerzenia exela. Filtruje konkretne kolumny, kopiuje dane ,potem zapisuje w csv i ładuje na maszynę do wykonania.

Chciałbym w Access zrobić makro, które samodzielnie będzie pobierać plik z zasobu, wykonywał zapisane kwarendy i zapisywał formie zwykłego exela , chyba da się zapisać bezpośredniego w csv.

Kwarendy zrobiłem w SQL i wpiąłem do Accessowego makra - wyszukuje się poprawnie, ale rozbija wyszukiwanie na każdą kwarendę osobno , a nie scala w jedno - to pierwszy problem.

Drugi z którym walczę, to napisanie makra aby otwierał i pobierał dane z konkretnej lokalizacji - ale wywala błędy.

Sub OtworzPlikExcel()
 
 
 
    Dim excelApp As Object
 
    Dim excelWorkbook As Object
 
    Dim excelWorksheet As Object
 
    Dim filePath As String
 
    
 
    ' Ścieżka do pliku Excel
 
    filePath = "C:\ścieżka\do\pliku.xlsx"
 
    
 
    ' Utwórz nową instancję aplikacji Excel
 
    Set excelApp = CreateObject("Excel.Application")
 
    
 
    ' Wyłącz wyświetlanie okna Excela
 
    excelApp.Visible = False
 
    ' Otwórz plik Excel
 
    Set excelWorkbook = excelApp.Workbooks.Open(filePath - ścieżka pliku)
 
    Set excelWorksheet = excelWorkbook.Sheets("Nazwa_arkusza")
 
    
 
    ' Pobierz dane z arkusza Excel do Access
 
    Dim wartość As Variant
 
    wartość = excelWorksheet.Range("A1").Value - załóżmy że zakres to od A1 ; A600 do X1 ; X600
chociaż nie wiem czy tutaj nie można użyć in selection? 
 
  
 
    ' Zamknij plik Excel
 
    excelWorkbook.Close
 
    ' Zamknij aplikację Excel
 
    excelApp.Quit
 
End Sub

i w sumie już na początku jest błąd - error 429 - activeX component cant create object

pominąłem tworzenie zatem instancji i wtedy pojawia się taki błąd:

error 91 - object variable or With block variable not set - co pewnie wywołuję się przez to że nie ma obiektu.

I nie wiem jak się za to zabrać. Jakieś pomysły?

2

Kod wygląda OK. SOA#1 - u mnie działa.
Sprawdź, czy nie masz gdzieś "zerwanych" referencji.
Możesz też spróbować tak:

Set excelWorkbook = GetObject(filePath)

To od razu tworzy ci obiekt klasy Workbook - bez potrzeby tworzenia Application.

1 użytkowników online, w tym zalogowanych: 0, gości: 1