返回列表 上一主題 發帖

[發問] 網頁資料匯入Excel中文顯示異常

[發問] 網頁資料匯入Excel中文顯示異常

使用下列程式抓取網頁資料(網址為公司資料無法提供),有的網頁中文可正確顯示,但有的網頁中文為亂碼(應該為其他文字碼)
檢查網頁編碼,中文顯示正常的為"繁體中文(BIG5),異常的為"Unicode(UFT-8)",請問與這個有關嗎??
如果是這原因造成的,請問程式要如何修正,謝謝



使用VB抓取網頁資料,每次開啟Excel後都會詢問"查詢更新"
是否有設定可以修正


Sub 新增查詢()
    Range("A3:AA65526").Clear
    Range("A3").Select
    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;網址", Destination:=Selection)
             .Name = "Alarm"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = "2"
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False        
    End With
End Sub

回復 2# luhpro

我是要抓取一個網頁資料,發現抓出來的資料中文都是亂碼
用相同的程式測試抓取其他網頁資料並無此現象
才會詢問是否與網頁編碼有相關嗎
有找到一篇文章是先將網頁資料轉為.HTM檔,再將資料轉入Excel,則可正常顯示
只是會多產生一個.HTM檔
Sub Ex5()
    Dim Fs As Object, Url As String, OkFile As String, MyQuery As QueryTable
    Url = "'網址"
    OkFile = "C:\OK.HTM"                              '下載後存檔名稱
    Range("A3:AA65526").Clear
    Range("A3").Select
    With CreateObject("Microsoft.XMLHTTP")
        .Open "get", Url, False
        .send
        Set Fs = CreateObject("Scripting.FileSystemObject").CreateTextFile(OkFile, True)
                                     '建立一文字檔(True:檔案如存在 可覆蓋舊檔案)
        Fs.WriteLine .responseText   '寫入文字檔
        Fs.Close
        With ThisWorkbook.Sheets(1)  '工作表中匯入HTM檔
            Set MyQuery = .QueryTables.Add("FINDER;file:///" & OkFile, .[A3])
            MyQuery.WebTables = "2"
            MyQuery.WebFormatting = xlWebFormattingNone
            MyQuery.Refresh 0
        End With
  End With
End Sub
   
大大所提的方法我會再去研究研究
謝謝你的指導

TOP

        靜思自在 : 有多少力量就做多少事,不要心存等待,等待才會落空。
返回列表 上一主題