我将模板文件保存在我们的SharePoint(.xlsx)上,主文件夹中的活动文件和所有旧版本都移动到所述主文件夹中的Archive文件夹。我按日期标记(yyyymmdd),然后按"模板"对于每次更新,例如20161206模板。
我知道我可以在VBA中使用Workbooks.Open(" http://www.website.com/")函数来打开文件,但我不知道如何从中打开动态命名文件互联网。
我想的是:
Sub OpenFromInternet()
Dim DateChk As String
DateChk = 'Not sure
Workbooks.Open "http://www.website.com/" &DateChk& " Template.xlsx"
End Sub
DateChk是我陷入困境的地方......我不知道什么是解决这个问题的有效方法。考虑到我只将一个文件保存在主文件夹中并带有日期,我为DateChk尝试了一个通配符(星号),但它没有用。
在弄清楚如何让DateChk变得有意义时,任何输入都会受到赞赏。
编辑01:
尝试此代码:
Sub OpenFromInternet()
Dim wbk As Workbook
Set wbk = Workbooks("http://www.website.com/Update Log.xlsx")
Dim LR As Long
LR = Cells(wbk.Sheets("Sheet1").Rows.Count, 1).End(xlUp).Row
Dim DateChk As String
DateChk = Workbooks("http://www.website.com/Update Log.xlsx").Sheets("Sheet1").Range("A" & LR).Value
Workbooks.Open "http://www.website.com/" & DateChk & " Template.xlsx"
End Sub
我遇到的问题与尝试定义在线工作簿有关(运行时错误9,下标超出范围)。我本来想要更新另一个文件,但我想这比其他人更容易维护...只需要记住它。
仍在努力解决这个问题。
编辑02:
我的代码有效:
Sub OpenFromInternet()
Workbooks.Open ("http://www.website.com/Update Log.xlsx")
Dim LR As Long
LR = Cells(Sheets("Sheet1").Rows.Count, 1).End(xlUp).Row
Dim DateChk As String
DateChk = Sheets("Sheet1").Range("A" & LR).Value
Workbooks("Update Log.xlsx").Close SaveChanges:=False
Workbooks.Open "http://www.website.com/" & DateChk & " Template.xlsx"
End Sub
我觉得它效率很低,但解决了这个问题...我想摆脱第二个文件必须同时维护和使用(打开,关闭)。
任何有助于规避第二本练习册的帮助都将不胜感激。
答案 0 :(得分:0)
有关正常运行的代码,请参阅编辑02。
在另一个问题上会询问有关引用在线工作簿的问题,因为我最初提出的问题已经得到了解答,无论我认为我的意图是什么,都像我一样。