使用VBA打开&保存在线动态名称文件

时间:2016-12-06 14:31:56

标签: vba

我将模板文件保存在我们的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

我觉得它效率很低,但解决了这个问题...我想摆脱第二个文件必须同时维护和使用(打开,关闭)。

任何有助于规避第二本练习册的帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

有关正常运行的代码,请参阅编辑02。

在另一个问题上会询问有关引用在线工作簿的问题,因为我最初提出的问题已经得到了解答,无论我认为我的意图是什么,都像我一样。