我一直在玩使用VBS/VBA从网页上抓取数据.
如果它是Javascript我会很容易离开,但它在VBS/VBA中似乎并不那么直接.
这是我为答案做的一个例子,它可以工作,但我已经计划使用它来访问子节点,getElementByTagName但我无法弄清楚如何使用它们!该HTMLElement对象没有这些方法.
Sub Scrape()
Dim Browser As InternetExplorer
Dim Document As HTMLDocument
Dim Elements As IHTMLElementCollection
Dim Element As IHTMLElement
Set Browser = New InternetExplorer
Browser.navigate "http://www.hsbc.com/about-hsbc/leadership"
Do While Browser.Busy And Not Browser.readyState = READYSTATE_COMPLETE
DoEvents
Loop
Set Document = Browser.Document
Set Elements = Document.getElementsByClassName("profile-col1")
For Each Element in Elements
Debug.Print "[ name] " & Trim(Element.Children(1).Children(0).innerText)
Debug.Print "[ title] " & Trim(Element.Children(1).Children(1).innerText)
Next Element
Set Document = Nothing
Set Browser = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud)
我一直在看这个 …
我正在尝试为excel创建一个自定义功能区,其组如下图所示.(2行按钮,下面有一个下拉框).

我开始认为它不能完全按照我的意愿完成.
我尝试了几种不同的方式(其中一种方法如下),但它们都产生相同的输出.3列,2x2按钮,第三列包含下拉框.
有谁知道这是否可能?
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customUI onLoad="Ribbon.onLoad" xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon>
<tabs>
<tab id="toolRibbon" label="redacted">
<group id="groupDocument" label="Secret Document">
<box id="z" boxStyle="vertical">
<box id="a" boxStyle="horizontal">
<box id="aa" boxStyle="vertical">
<button id="aaa" label="AAA" />
<button id="aab" label="AAB" />
</box>
<box id="ab" boxStyle="vertical">
<button id="aba" label="ABA" />
<button id="abb" label="ABB" />
</box>
</box>
<comboBox id="b" label="Looms">
<item id="ba" label="BA" />
<item id="bb" label="BB" />
<item id="bc" label="BC" />
</comboBox>
</box>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Run Code Online (Sandbox Code Playgroud) 使用此功能的顶部和左侧参数是否有中心屏幕选项,或者它始终是一个数字?
我正在使用它而不是常规输入框,因为它更好地处理取消事件,但它总是出现在屏幕的右下角,这不太有用:/