Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从VBA打开浏览器,从单元格传递URL_Vba_Api - Fatal编程技术网

从VBA打开浏览器,从单元格传递URL

从VBA打开浏览器,从单元格传递URL,vba,api,Vba,Api,我需要从VBA打开浏览器,其中必须从单元格读取URL。如果我在调用中使用URL作为字符串,它可以正常工作,但是当我尝试从单元格调用URL时,我遇到了一个错误,因为它在前面添加了HTTP 这个有效 Set browser = CreateObject("InternetExplorer.Application") browser.Visible = True browser.Navigate ("https://ITMIXI01AP.ICSITA.NET/InforIntSTS/connect

我需要从VBA打开浏览器,其中必须从单元格读取URL。如果我在调用中使用URL作为字符串,它可以正常工作,但是当我尝试从单元格调用URL时,我遇到了一个错误,因为它在前面添加了HTTP

这个有效

Set browser = CreateObject("InternetExplorer.Application")

browser.Visible = True

browser.Navigate ("https://ITMIXI01AP.ICSITA.NET/InforIntSTS/connect/authorize?client_id=infor~62hEkBLpdrXINBI5Byh4NVAu9JuZmpO7NyMANis65xU&response_type=code&redirect_uri=http://localhost:3000/redirect.html")
这个没有:

 wClientId = ws.Range("C19")
 wClientSecret = ws.Range("C20")
 wTokenUrl = ws.Range("C21")
 wTokenResource = ws.Range("C22")
 wRedirecURI = ws.Range("C23")


InforOSURL = Chr(34) + Trim(wTokenUrl) + Trim(wTokenResource) + "?client_id=" + Trim(wClientId) + "&response_type=code&redirect_uri=" + 
Trim(wRedirecURI) + Chr(34)
InforOSURL = Trim(InforOSURL)

Set browser = CreateObject("InternetExplorer.Application")

browser.Visible = True

browser.Navigate InforOSURL

另一种方法是使用
ShellExecute()
函数

除了可以打开任何文档外,它还可以使用默认浏览器打开并导航到网页。此外,通过提供
动词
,您可以执行诸如打印、编辑等操作

下面的示例有一个静态
打开
操作

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, _
                                                                               ByVal lpOperation As String, _
                                                                               ByVal lpFile As String, _
                                                                               ByVal lpParameters As String, _
                                                                               ByVal lpDirectory As String, _
                                                                               ByVal nShowCmd As Long) As Long
Public Sub MyShellExecute(ByVal Path As String)
    ShellExecute 0, "Open", Path, "", "", vbNormalNoFocus
End Sub
称之为:

MyShellExecute "www.google.com"

您不需要在开始和结束时使用Chr(34)。如果我删除了要求保存文件的Chr(34),我需要在浏览器中打开url。如果您在
browser.Navigate InforOSURL
,那么
InforOSURL
变量的值是多少?如果保留Chr(34),IE将尝试打开一个名为“http://%22https[…]的页面.html%22”,因此您需要删除它们,可能还有另一个错误,但我们没有您的数据,无法猜测。