Vba代码从列表中获取特定项目的数据排名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vba代码从列表中获取特定项目的数据排名相关的知识,希望对你有一定的参考价值。

我试图从列表中获取特定项目的数据排名。示例-Morpheus Greens项目位于列表中的数据排名第11位。如下图所示。我想要在范围A1中的数据排名计数11。下面是我尝试但没有运气的vba代码。

Pic-

enter image description here

我的vba代码 -

Sub Class_Initialize()
Set driver = CreateObject("Selenium.FirefoxDriver")
driver.get "https://www.99acres.com/search/project/buy/residential/sector-78-noida?search_type=QS&search_location=CP1&lstAcn=CP_R&lstAcnId=1&src=CLUSTER&preference=S&selected_tab=3&city=7&res_com=R&isvoicesearch=N&keyword_suggest=sector-78%20noida%3B&np_search_type=R2M%2CNL%2CNP&fullSelectedSuggestions=sector-78%20noida&strEntityMap=W3sidHlwZSI6ImxvY2FsaXR5In0seyIxIjpbInNlY3Rvci03OCBub2lkYSIsIkNJVFlfNywgTE9DQUxJVFlfODM5OCwgUFJFRkVSRU5DRV9TLCBSRVNDT01fUiJdfV0%3D&texttypedtillsuggestion=sector&refine_results=Y&Refine_Localities=Refine%20Localities&action=%2Fdo%2Fquicksearch%2Fsearch&suggestion=CITY_7%2C%20LOCALITY_8398%2C%20PREFERENCE_S%2C%20RESCOM_R&searchform=1&locality=8398&price_min=null&price_max=null"
driver.Window.Maximize
driver.Wait 2000
driver.FindElementByXPath("//a[contains(@class,'npt_titl_desc')][contains(text(),'Morpheus Greens')]").ScrollIntoView
driver.FindElementByXPath("//a[contains(@class,'npt_titl_desc')][contains(text(),'Morpheus Greens')]").Size = Range("A1")
'My output should 11
End Sub
答案

要提取data-rank计数11,您可以使用以下代码行:

driver.FindElementByXPath("//a[@class='npt_titl_desc' and contains(.,'Morpheus Greens')]//ancestor::div[@class='npsrp_card srpWrap' and @data-projid='R35476']").Attribute("data-rank")

以上是关于Vba代码从列表中获取特定项目的数据排名的主要内容,如果未能解决你的问题,请参考以下文章

具有多个标准排名的 Excel VBA 动态数据验证下拉列表

片段中的 notifyDataSetChanged() 不刷新列表视图

在 Excel 中运行 VBA 代码以获取 Access 数据库中的 VBA

OnItemClick 如何从列表视图中获取单击项目的文本值

将 JSON 字符串从片段传递到适配器的问题

如何从 VBA 中的两个数组函数获取单个数组输出?