首先,我有一个从网页上抓取表格的抓取功能,并将数据存储在2D数组中。
2D数组从第0行开始到页面上有很多行数据,而第1列却有很多列。
第0行只包含所有列名。
我的ReDim:
ReDim Addresses(0 To lngTotalRecords, 1 To columns.Count) As String
然后我将这个2D数组存储到一个名为dictClients的脚本字典中,因为有多个客户端在网页上都有自己的同一个表项。
因此,在我的字典中,我有类似以下的内容来引用特定客户端的特定地址表:
dictClients(1)("Addresses")
dictClients(2)("Addresses")
我现在希望能够检查某行中的单元格是否包含特定值,但是网页允许重新组织列以便:
dictClients(1)("Addresses")(1,1) 'row 1 column 1
并不总是引用"街道号码"柱。例如,街道号列可以是其他人的列表:
dictClients(1)("Addresses")(1,3) ' row 1 column 3
鉴于这些细胞:
dictClients(1)("Addresses")(0,1) '(0,2) (0,3) etc.
都是指列的名称,我找到特定命名列位置的最佳方法是什么?
示例:我想获取第1行中邮政编码单元格的值,所以我需要查看
dictClients(1)("Addresses")(1, POSTALCODECOLUMN)
,
它并不总是在网页上的相同位置。
我正在考虑使用以下功能:
Public Function column(strArr() As String, strColumnName As String)
Dim i As Long
For i = 1 To UBound(strArr, 2)
If strArr(0, i) = strColumnName Then column = i
Next
End Function
但它只是感觉如此冗长,称之为:
strPostalCode =
dictClients(1)("Addresses")(1,column(dictClients(1)("Addresses"), "Postal Code")
有更好更简单的方法吗?
感谢。