iT邦幫忙

0

一直顯示430或執行階段錯誤 2147417848(80010108)

  • 分享至 

  • xImage

以下我的內碼
Sub LoginCheck() 'CPIS登入檢查
Sheets.Add
ActiveSheet.Name = "臨時"
ActiveSheet.Move After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
X = "http://tncpis.tn.chipmos.com.tw/LCDD/default.aspx"
Dim url As String
url = X
Set ie = CreateObject("internetexplorer.application")

With ie
.Visible = False
.navigate url
Do While .Readystate <> 4
Loop
.ExecWB 17, 2
.ExecWB 12, 2
Sheets("臨時").Activate
Sheets("臨時").Cells(1, 1).Select
ActiveSheet.PasteSpecial Format:="HTML"
End With
ie.Quit
If Left(Sheets("臨時").Cells(Sheets("臨時").[A65536].End(xlUp).Row, 1), 7) <> "目前登入使用者" Then
Login '登入
Cnl_Sheet
LoginCheck
End If
Cnl_Sheet

End Sub

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
yoyokuo2007
iT邦新手 5 級 ‧ 2022-12-07 19:19:28

如果您的程式一直顯示 430 或執行階段錯誤 2147417848(80010108),那很有可能是您的程式沒有正確地執行物件的初始化(initialization)。

在您的程式中,您使用了 CreateObject 函數來建立 Internet Explorer 物件,並在建立物件後直接進行設定和操作,沒有正確地初始化物件。這會導致程式無法正確執行,並且出現上述錯誤訊息。

為了解決這個問題,您需要在建立物件後先使用 Set 語法將物件設定給一個變數,再進行設定和操作。例如,您可以將下面這段程式碼:

Set ie = CreateObject("internetexplorer.application")

With ie
.Visible = False
.navigate url
Do While .Readystate <> 4
Loop
.ExecWB 17, 2
.ExecWB 12, 2
Sheets("臨時").Activate
Sheets("臨時").Cells(1, 1).Select
ActiveSheet.PasteSpecial Format:="HTML"
End With
改寫成下面這樣:

Dim ie As Object
Set ie = CreateObject("internetexplorer.application")

With ie
.Visible = False
.navigate url
Do While .Readystate <> 4
Loop
.ExecWB 17, 2
.ExecWB 12, 2
Sheets("臨時").Activate
Sheets("臨時").Cells(1, 1).Select
ActiveSheet.PasteSpecial Format:="HTML"
End With

這樣,您的程式就可以正常執行,不會再出現 430 或 2147417848(80010108)錯誤了

我要發表回答

立即登入回答