因此,尽管我觉得有必要提到我已经在这里发表了几篇关于这个项目的帖子,但我已经在这方面取得了一些进展:
对于那些没有读过我之前的帖子的人,我有一个在线会员网站的名称数据库,其中大部分的性别已经从另一张纸上的 6,000 个名字长列表中分配了 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:需要对象”消息,但我相当确定我的代码中存在其他错误,因此请随时指出这些错误。