Morten Hsu wrote:
我嘗試用您75樓的 Sub getpost() 下載個股成交資訊,但是增列一欄為平均股價,用第9欄的成交金額/第8欄的成交量計算, 但是執行結果只在工作表第11欄填上欄位名稱,資料則空白一片。用 Debug.Print "平均股價:" & TempArray(i, 11) 驗證,但是即時運算顯示的運算結果卻是錯的。雖然 20220217改的 Get_cnyes_Jsondata也可以添加一欄取得vwap的資料,我希望能知道問題出在哪裡,因為ChatGPT也束手無策。更改後的代碼如下:
錯誤1
陣列如果沒有特別指定,是從0開始,所以您全部的位置都+1
錯誤2
原始資料中有逗號,不能用val(),會出錯

…… 略……
' 修改:只新增一欄,用於 K 欄的平均股價
ReDim TempArray(Table.Length - 1, Table(2).Cells.Length + 0)
…… 略……
If TempArray(i, 7) > 0 And TempArray(i, 8) > 0 Then ' 確保 "成交量" 和 "成交金額" 都不為 0
TempArray(i, 10) = Round(TempArray(i, 8) / TempArray(i, 7), 2)
…… 略……
TempArray(i, 10) = "N/A" ' 若成交量或成交金額為 0,顯示 "N/A"
' 填充 K 欄(平均股價)
…… 略……'.Range(.Cells(2, 11), .Cells(Table.Length, 11)).Value = Application.Index(TempArray, 0, 11)
Morten Hsu wrote:
另外,再請教本例一個問題:在With Getxml區塊內
.Open "POST", Url, False
.setRequestHeader "Referer", Url
.send (Url_a)
Open "POST"已經用Url,setRequestHeader "Referer"為何還是Url,不是Url_a,而是.send (Url_a)?
75樓,2017年的古董範例,真正原因是什麼我忘了
應該是當初要檢查 "Referer",剛好就是 UrL ,剛測試刪掉也正常不需要了
但網頁改版多次,要完整資料,還是要改用json版的範例
.send (Url_a)
url_a,是因為我懶,沒重新定義新名稱,拿現在變數直接用