从URL打开Excel文档并导航到所需的工作表

时间:2017-06-20 21:14:41

标签: vba excel-vba excel

我正在尝试从内部URL打开Excel文档(这就是代码中没有链接的原因),并且我试图弄清楚为什么在打开Excel文档后我无法访问特定的工作表。

我可以毫无问题地打开文档,但是一旦我到达代码(Set ws = wb.Sheets("Version Control"))的这一行,

我收到运行时错误9:下标超出范围错误。似乎我得到了这个,因为无法识别工作表名称。如果是这种情况,我正在寻求有关如何解决此问题的帮助,并找出如何在从URL打开工作簿时对其进行操作。

Option Explicit

Sub openDoc()

Dim IE As InternetExplorer
Dim ws As Worksheet
Dim wb As Workbook

Set IE = New InternetExplorer

IE.navigate ("") ' <--- insert business URL here
Do While IE.Busy Or IE.readyState <> 4: DoEvents: Loop

Set wb = ActiveWorkbook

Set ws = wb.Sheets("Version Control") ' WHERE ERROR HAPPENS

ws.Select


End Sub

3 个答案:

答案 0 :(得分:0)

如果您的网址返回工作簿,那么这应该有效:

Sub openDoc()

    Dim ws As Worksheet
    Dim wb As Workbook

    Set wb = Workbooks.Open("yourURLhere")
    Set ws = wb.Sheets("Version Control") 
    ws.Select

End Sub

答案 1 :(得分:0)

试试这个。

Option Explicit

Public Sub OpenWebXLS()
' *************************************************
' Define Workbook and Worksheet Variables
' *************************************************
Dim wkbMyWorkbook As Workbook
Dim wkbWebWorkbook As Workbook
Dim wksWebWorkSheet As Worksheet

Set wkbMyWorkbook = ActiveWorkbook

' *************************************************
' Open The Web Workbook
' *************************************************
Workbooks.Open ("http://www.richlocus.com/Illustrations/UploadedExcel.xls")

' *************************************************
' Set the Web Workbook and Worksheet Variables
' *************************************************
Set wkbWebWorkbook = ActiveWorkbook
Set wksWebWorkSheet = ActiveSheet

' *************************************************
' Copy The Web Worksheet To My Workbook and Rename
' *************************************************
wksWebWorkSheet.Copy After:=wkbMyWorkbook.Sheets(Sheets.Count)
wkbMyWorkbook.Sheets(ActiveSheet.Name).Name = "MyNewWebSheet"

' *************************************************
' Close the Web Workbook
' *************************************************
wkbMyWorkbook.Activate
wkbWebWorkbook.Close

End Sub

答案 2 :(得分:0)

它不是很漂亮,但假设这是你打开excel文件的唯一方法,而你一次只打开一个,你可以运行一个循环来等到一个不是的工作簿你正在运行一个宏来显示。如果您知道要查找的工作簿的名称,则可以通过查找该工作簿进行更准确的检查。

elsif