vba獲取網頁表格資料庫資料庫
① 怎麼用VBA或網路爬蟲程序抓取網站數據
VBA網抓常用方法
1、xmlhttp/winhttp法:
用xmlhttp/winhttp模擬向伺服器發送請求,接收伺服器返回的數據。
優點:效率高,基本無兼容性問題。
缺點:需要藉助如fiddler的工具來模擬http請求。
2、IE/webbrowser法:
創建IE控制項或webbrowser控制項,結合htmlfile對象的方法和屬性,模擬瀏覽器操作,獲取瀏覽器頁面的數據。
優點:這個方法可以模擬大部分的瀏覽器操作。所見即所得,瀏覽器能看到的數據就能用代碼獲取。
缺點:各種彈窗相當煩人,兼容性也確實是個很傷腦筋的問題。上傳文件在IE里根本無法實現。
3、QueryTables法:
因為它是excel自帶,所以勉強也算是一種方法。其實此法和xmlhttp類似,也是GET或POST方式發送請求,然後得到伺服器的response返回到單元格內。
優點:excel自帶,可以通過錄制宏得到代碼,處理table很方便
。代碼簡短,適合快速獲取一些存在於源代碼的table里的數據。
缺點:無法模擬referer等發包頭
也可以利用採集工具進行採集網頁端的數據,無需寫代碼。
② 急求,如何用EXCEL VBA 打開網站上的資料庫,並將想要的數據記錄寫入EXCEL中,本人願意將所有分數捐出,
EXCEL與VB連接方法:
Dim xlsApp
On Error Resume Next
Set xlsApp = GetObject(, "excel.application")
On Error GoTo 0
If IsEmpty(xlsApp) Then
MsgBox "excel沒打開"
Exit Sub
Else
xlsApp.activesheet.cells(1, 1).Value = "這是一個演示"
'在這里可以對當前工作表進行其他操作
End If
③ vba代碼導入外部數據
在VBA中導入外部數據,可以使用以下幾種方法:
使用QueryTables導入數據:
QueryTables對象常用於從網頁或文本文件中導入數據。通過指定連接字元串和目標工作表范圍,可以輕松地導入數據。例如,從網頁導入CSV文件時,需設置相應的分隔符,並指定立即刷新數據。
使用Power Query:
Power Query是Excel的一個強大功能,雖然主要通過用戶界面操作,但也可以通過VBA觸發其刷新功能。這對於已經設置好Power Query查詢的用戶來說,是一種快速更新數據的方法。
使用ADODB連接資料庫:
對於需要從資料庫中導入數據的場景,ADODB(ActiveX Data Objects)庫是一個很好的選擇。通過創建連接對象和記錄集對象,可以執行SQL查詢,並將查詢結果直接復制到工作表中。這種方法適用於Access、SQL Server等資料庫。
使用FileSystemObject對象或Workbook對象的Open方法:
這種方法可以打開外部文件(如Excel、CSV、TXT等),並讀取文件中的數據。通過遍歷文件內容,可以將數據逐行或逐列復制到目標工作表中。這種方法靈活性較高,但需要編寫較多的代碼來處理文件格式和數據轉換。
直接指定外部工作表路徑和工作表名稱進行導入:
如果需要導入的數據已經存在於另一個Excel文件中,可以創建一個新的Excel應用程序實例,打開指定的Excel文件和工作表,然後將數據復制到目標工作表中。這種方法適用於需要合並多個Excel文件數據的場景。
請注意:在使用上述方法時,需確保已經啟用了相應的庫(如Microsoft ActiveX Data Objects Library),並根據數據來源和格式調整代碼中的連接字元串或其他參數。同時,考慮到數據安全和隱私保護,導入外部數據時請確保數據來源可靠。