Există multe modalități de a obține date din surse externe într-o foaie de lucru
De asemenea, puteți obține date de pe Internet, fișiere text sau alte Excel sau
Deci avem nevoie de o conexiune la baza de date (variabilă varConn în macroul de mai jos) și interogare SQL (variabil varSQL ) pentru a automatiza preluarea datelor din baza de date pentru raport. În exemplul de mai jos există interogare SQL , care primește date dintr-o bază de date mică în MS Access.
Clic încărcați baza de date
Fișierul MS Access va arăta astfel:
Să scriem macrocomanda noastră care se va executa interogare SQL .
Deschide meniul Serviciu - Macro - Editor Visual Basic , introduceți noul modul (meniul Insert - Module ) și copiați textul macro acolo:
Sub SQLQuery_1() 'moonexcel.com.ua Dim varConn As String Dim varSQL As String Range("A1").CurrentRegion.ClearContents varConn = "ODBC;Driver={Microsoft Access Driver (*.mdb, *.accdb)}" varSQL = "SELECT Month, Product, City FROM Sumproduct" With ActiveSheet.QueryTables.Add(Connection:=varConn, Destination:=Range("A1")) .CommandText = varSQL .Refresh BackgroundQuery:=False End With End Sub
Faceți clic pe Salvați și reveniți la Excel. Alegeți din meniu Vizualizare - Macrocomenzi (Alt+F8) numele macrocomenzii noastre " SQLQuery_1 ". Va apărea o casetă de dialog, apăsați-o Bază de date... , căutați fișierul nostru Access și faceți clic
Acum putem vedea că interogarea noastră macro a ridicat coloanele
În mod similar, putem obține date dintr-un fișier obișnuit Excel ca dintr-o bază de date. Pentru aceasta, codul macrocomenzii noastre trebuie să fie ușor rescris și driverul de conexiune schimbat din Access la Excel.
Exportăm tabelul
Sub SQLQuery_2() 'moonexcel.com.ua Dim varConn As String Dim varSQL As String Range("A1").CurrentRegion.ClearContents varConn = "ODBC;Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)}" varSQL = "SELECT Month, Product, City FROM Sumproduct" With ActiveSheet.QueryTables.Add(Connection:=varConn, Destination:=Range("A1")) .CommandText = varSQL .Refresh BackgroundQuery:=False End With End Sub
Va apărea o fereastră în care putem selecta fișierul nostru Excel (ar trebui să fie numit