所以,雖然我覺得有必要提一下,我已經在這裏就這個項目發表了幾篇文章,但我已經取得了一些進展:VBA - 「運行時錯誤424:需要的對象」
對於那些沒有閱讀過我以前的帖子的人,我有一個在線會員網站的名稱數據庫,其中大部分性別已從另一張紙上的6000個名單長列表中分配VLOOKUP。其餘的則是「ERR」,這是VB代碼接管並在性別猜測網站上搜索姓名並能夠返回「F」,「M」或「U」的點「(不知道)那些細胞。我在性別列中使用的函數如下:
= IF(ISERROR(VLOOKUP($ A41,NameDatabase!$ A $ 2:$ B $ 8000,2,FALSE)),「ERR」,VLOOKUP($ A41 ,NameDatabase $ A $ 2:$ B $ 8000,2,FALSE))
而且VBA代碼拿剩下的工作如下:
Sub DetermineGender()
Dim dbsheet As Worksheet
Set dbsheet = ThisWorkbook.Sheets("memberdata2")
lr = dbsheet.Cells(Rows.Count, 1).End(xlUp).Row
SelRow = Selection.Row
'Gender (Column H)
GenderText = dbsheet.Cells(SelRow, 8)
'Names (Column A)
NamesText = dbsheet.Cells(SelRow, 1)
'Loop Routine
For Row = 2 To lr
If NamesText.Value = "ERR" Then
Dim IE As New InternetExplorer
IE.Visible = True
IE.navigate "http://www.gpeters.com/names/baby-names.php?name=" & NamesText
Do
DoEvents
Loop Until IE.readyState = READYSTATE_COMPLETE
Dim Doc As HTMLDocument
Set Doc = IE.Document
If Doc.getElementsByTagName("b").Item(1).innerText = "It's a boy!" Then
theGenderText.Value = "F"
ElseIf Doc.getElementsByTagName("b").Item(1).innerText = "It's a girl!" Then
GenderText.Value = "M"
Else
GenderText.Value = "U"
End If
End If
Next
End Sub
我在幾乎絕對的初學者VBA,我的大部分代碼都是由4-5個不同的來源拼湊而成的。雖然我提到我得到了「運行時錯誤424:所需的對象」消息,但我確信我的代碼中存在其他錯誤,因此請隨時指出這些錯誤。
我改變了性別,我仍然得到錯誤。 (我不知道「第一個」是如何放在第一個之後的,因爲它根本沒有出現在我的原始代碼中......)它並不告訴我哪一行是對錯誤負責的,只是通知我自己的錯誤。 – user2370064
我也更改了如果NamesText.Value =「ERR」爲:GenderText.Value =「ERR」,但錯誤仍然存在。 – user2370064