用于将工作簿保存到网络驱动器的VBA代码

时间:2014-03-04 11:39:23

标签: excel vba excel-vba sharepoint-2010 save

您好我正在使用此VBA代码保存Excel工作簿:

Sub Button10_Click()
    Dim SaveName As String
       SaveName = ActiveSheet.Range("N2").Text
       ActiveWorkbook.SaveAs Filename:="z:\" & _
           SaveName & ".xlsm"
End Sub

这个代码工作一旦我打开模板并提交第一个保存,但是当我对该工作簿进行更改并尝试保存它时,不允许我覆盖并给我一个1004错误。

但是当我再次打开模板并放入相同的FileName时,它会让我覆盖一下提示框。

有没有办法让它覆盖?

哦和cel N2是B2和B3的连接,它是站点名称,如果这导致问题,则日期之间带有“ - ”。

提前感谢您的帮助

我为自己解决问题所做的工作:

修改工作簿以删除fileName中的任何空格

SaveName现在是WeeklyTakingsv9,但是从siteName(B2)更改--WeekendingDate(B3)站点名称将白色空格放出“_”

我尝试修剪但是客户端将fileName作为特定SiteName到周末日期。

尝试创建一个解决方案,以便打开对话框,给出fileName和Networked驱动器位置,但这不适用于客户端计算机

进一步细节

我有26个客户端站点(图书馆)

每个站点都有自己的网络驱动器连接到SharePoint

我所做的是设置连接到sharepoint库的每个网络驱动器

i将驱动器号设置为Z,以便不干扰他们自己的网络设置

因此,我不必创建26个工作簿,我已达到这一点,它将保存一次,但他们需要每天进入工作簿并进行更改。

所以当打开工作簿时B2-B3没有改变,所以fileName是相同的,但它不允许我覆盖那里的内容

SharePoint不是问题,这是我在Excel上遇到的覆盖问题

1 个答案:

答案 0 :(得分:0)

我在我工作的组织内一直使用网络保存。

保存为新文件时仅使用SaveAs。

当您希望工作簿自行保存时,我发现以下代码成功:

Application.DisplayAlerts = False
ThisWorkbook.Save

请注意,每次用户点击(每天24小时使用文件!)时,此代码每30秒左右执行一次,并且自实施以来没有失败(2013年10月)。

祝你好运。