返回列表 上一主題 發帖

[發問] 請問如何修改才能載入表格 謝謝

[發問] 請問如何修改才能載入表格 謝謝

Option Explicit

Dim ie As Object   '模組最頂端 Dim 供這模組的程序使用的變數
Sub AllFile()
    Dim i As Integer, v, Y As Integer, S As String
    Set ie = CreateObject("internetexplorer.application")   '使用此方式可以免除 "設定引用項目"

           GetDividend (2330)



End Sub


Private Sub GetDividend(ByVal ss As String)     '取股利網頁
  Dim strText As String
  Dim i As Integer, j As Integer, xTable As Object
  With CreateObject("msxml2.xmlhttp")
    .Open "GET", "http://pscnetinvest.moneydj.com.tw/z/zc/zcq/zcqa/zcqa_" & ss & ".djhtm", False
    .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    .send
    strText = BinToStr(.responseBody, "BIG5") '要注意網頁編碼
  End With
  With CreateObject("htmlfile")
        .Write strText
        Set xTable = .all.tags("table")(2)
        With Sheet2
            .Cells.Clear
            For i = 0 To xTable.Rows.Length - 1
                For j = 0 To xTable.Rows(i).Cells.Length - 1
                    .Cells(i + 1, j + 1) = xTable.Rows(i).Cells(j).innertext
                Next
            Next
        End With
  End With
End Sub




Function BinToStr(arrBin, strChrs)
    With CreateObject("ADODB.Stream")
        .Type = 2
        .Open
        .Writetext arrBin
        .Position = 0
        .Charset = strChrs
        BinToStr = .ReadText
        .Close
    End With
End Function

原型GetDividend-2019-a().zip (15.75 KB)

TOP

回復 11# f3202

謝謝 大大 提供的資訊,研習中😀

TOP

回復 10# n7822123
原程式可能網頁改版而不能捉到 table 的資料,我對於語法屬性還不熟悉,努力學習中😀
網頁中 <form>....</form>我想是影響下載的

TOP

參考
https://www.mobile01.com/topicdetail.php?f=511&t=4737630&p=1

TOP

回復 6# f3202


學習了~~~~看來關鍵在於

htmlfile物件.body.innerhtml = .Responsetext

只是什麼時候用 .write 什麼時候用 .body.innerhtml

不知道有沒有辦法分辨,還是就二選一猜看看 {:3_59:}
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

回復 8# wufonna
改過了,請 大大 看看,謝謝

6.jpg (238.32 KB)

6.jpg

GetDividend-2019-a-good.zip (58.94 KB)

TOP

回復 6# f3202
非常感謝 大大,程式完全可執行了

5.jpg (243.51 KB)

5.jpg

GetDividend-2019-a-good.zip (180.79 KB)

TOP

回復 5# n7822123
我主要是取網頁內的 稅後盈餘 / 股東權益 ,做 股東權益報酬率  (ROE) = 稅後盈餘 / 股東權益,我在做看看,謝謝 大大

年合併損益表 http://pscnetinvest.moneydj.com.tw/z/zc/zcq/zcqa/zcqa_1723.djhtm
年合併資產負債表 http://pscnetinvest.moneydj.com.tw/z/zc/zcp/zcpb/zcpb_1723.djhtm

1.jpg (203.17 KB)

1.jpg

2.jpg (182.82 KB)

2.jpg

3.jpg (135.46 KB)

3.jpg

TOP

Sub get_stock()
Dim Url, HTMLsourcecode, GetXml
Set HTMLsourcecode = CreateObject("htmlfile")
Set GetXml = CreateObject("msxml2.xmlhttp")
Url = "http://pscnetinvest.moneydj.com.tw/z/zc/zcq/zcqa/zcqa_2330.djhtm"
With GetXml
.Open "GET", Url, False
.Send

HTMLsourcecode.body.innerhtml = .Responsetext
Set Table = HTMLsourcecode.all.tags("table")(2).Rows
For i = 0 To Table.Length - 1
For j = 0 To Table(i).Cells.Length - 1
ActiveSheet.Cells(i + 1, j + 1) = Table(i).Cells(j).innertext
Next j
Next i
End With
Set HTMLsourcecode = Nothing '釋放記憶體
Set GetXml = Nothing
End Sub '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

TOP

        靜思自在 : 話多不如話少,話少不如話好。
返回列表 上一主題