我有一张Excel表格,其中包含从A1到A75的列表,该列表必须动态替换包含下拉列表的网页中的值。
对于每个替换值,它需要从网页上提取报告并将其保存到Excel工作表B.
所有这些功能都必须通过单击Excel中的表单控件按钮来实现。
请建议&发布代码(如果有的话)。
我是VBA和Excel的新手;我被指示用其他货币获取全球货币的价值。这必须在365天完成。
虽然我建议尝试使用Macro来将数据从网页拉到excel,但在查看网站后我才知道必须从下拉列表中选择每种货币并需要导出这些货币到excel文件。
这成为一个繁忙的问题,所以我想到了一个解决方案并提出了一个想法(我不确定这是否会起作用)并在此发布以寻求此问题的帮助。
// 对该问题的进一步帮助,Excel文件包含超过75种货币,并且需要使用系统日期选择这些货币,并且需要选择从“AED”到“ZWD”开始的货币代码,因为每个条目需要将文件导出到Excel中。该网页中有一个可用的选项。 //
希望这能澄清您的要求,如需进一步帮助,请告知我们!
最诚挚的问候,Pravin
答案 0 :(得分:0)
(按F11 excel转到IDE)(工具|参考|浏览|找到上述文件)
Sub aa()
Dim aa As New SHDocVw.InternetExplorer
aa.Visible = True
aa.Navigate "http://www.yahoo.com.hk"
Stop
End Sub
答案 1 :(得分:0)
通常,您可以使用http请求对象而不是IE自动化来完成此操作。这更快,从我的观点来看也更容易:
Dim oRequest As Object
Set oRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
oRequest.Open "GET", "http://www.cboden.de"
oRequest.Send
MsgBox oRequest.ResponseText
如果您在代理服务器后面,可以使用以下内容:
Const HTTPREQUEST_PROXYSETTING_PROXY = 2
Dim oRequest As Object
Set oRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
oRequest.setProxy HTTPREQUEST_PROXYSETTING_PROXY, "http://proxy.intern:8080"
oRequest.Open "GET", "http://www.cboden.de"
oRequest.Send
MsgBox oRequest.ResponseText
如果你想使用POST(而不是GET方法)将一些值传递给网络服务器,你可以试试这个:
Dim oRequest As Object
Set oRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
oRequest.Open "POST", "http://www.cboden.de/misc/posttest.php"
oRequest.SetRequestHeader "Content-Typ", "application/x-www-form-urlencoded"
oRequest.Send "var1=123&anothervar=test"
MsgBox oRequest.ResponseText
如果你将它放入一个函数中,那么你可以在你的工作表中使用它:
Function getCustomHyperlink(ByVal pURL As String) As String
Dim oRequest As Object
Set oRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
oRequest.Open "GET", pURL
oRequest.Send
getCustomHyperlink = oRequest.ResponseText
End Function
在工作表中,您可以说例如:
=getCustomHyperlink("https://www.google.com/search?q=" & A1 )
如果您的搜索值在A1
中如果必须使用GET,POST方法取决于您要检索的网站。