Napisałem makro, które importuje tabelę z bazy danych SQL:
Sub import()
Dim cn As ADODB.Connection
Dim rst As ADODB.Recordset
Set cn = New ADODB.Connection
Set rst = New ADODB.Recordset
cn.Open "provider=SQLOLEDB; data source='***'; initial catalog='***'; user id= '***';"
rst.Open "SELECT...", cn 'tu odpowiednie odwołanie SQL
Application.Workbooks("Nowy").Worksheets("Arkusz1").Range("a1").CopyFromRecordset rst
rst.Close
cn.Close
Set rst = Nothing
Set cn = Nothing
End Sub
Problem w tym, że w każdej komórce po właściwym ciągu znaków jest kilka spacji, które uniemożliwiają mi dalsze przetwarzanie danych.
Na razie rozwiązałem to za pomocą funkcji Trim() już po wczytaniu tabeli:
Dim cell As Range
Range("a1").Select
Range(ActiveCell, ActiveCell.Offset(0,3).End(xlDown)).Select 'tabela ma 4 kolumny
For Each Cell In Selection
cell.Value = Trim(cell)
Next
Niestety trochę to trwa. Może da się to jakoś rozwiązać na poziomie importowania bazy do arkusza? |