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

Posted

技术标签:

【中文标题】用于将工作簿保存到网络驱动器的 VBA 代码 [关闭]【英文标题】:VBA Code for Saving a workbook on to a networked drive [closed] 【发布时间】:2014-03-04 11:39:23 【问题描述】:

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

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

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

但是当我再次打开模板并输入相同的文件名时,它会通过给我一个提示框让我覆盖。

有没有办法让它覆盖?

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

提前感谢您的帮助

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

修改工作簿以删除文件名中的所有空格

SaveName 现在是WeeklyTakingsv9,但从 siteName(B2)-WeekendingDate(B3) 更改了站点名称中包含空格的“_”

我尝试修整但客户的文件名是什么,使其成为周末日期的特定站点名称。

尝试创建一个解决方法,以便打开对话框并提供文件名和网络驱动器位置,但这在客户端计算机上不起作用

更多细节

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

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

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

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

所以我不必创建 26 个工作簿,我已经达到了保存一次的地步,但他们需要每天进入工作簿并进行更改。

所以当打开工作簿时,B2-B3 没有改变,所以文件名是相同的,但它不会让我覆盖那里的内容

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

【问题讨论】:

这与编程无关。 这与编程无关NOR VBA 然后修改您的问题并提供更多详细信息。让它成为一个好问题,你会得到一个好的答案。在这里,在 Stack Overflow 上,我们不回答糟糕的问题,因为它们大部分时间都被删除了。如果我的答案会被删除,那么 分享 知识有什么意义......只是浪费时间 因为你是这个网站的新手,所以unfamiliar with how it works.见what is on topic here 尝试求解。你有没有单步执行代码? SaveName 在运行时使用时是什么?你检查过空格吗?您是否尝试过使用Trim(SaveName)?在真正提出问题之前,您还有很多事情没有做。 【参考方案1】:

我在我工作的组织内一直使用网络节省。

仅在另存为新文件时使用 SaveAs。

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

Application.DisplayAlerts = False
ThisWorkbook.Save

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

祝你好运。

【讨论】:

完美的工作和非常容易实现非常感谢。

以上是关于用于将工作簿保存到网络驱动器的 VBA 代码 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Excel VBA > 公式在保存工作簿之前不会更新

打开和保存新工作簿 - VBA

Excel 2010 vba 复制选择工作表,保存并关闭两个工作簿

对多个工作簿使用宏

使用Excel VBA,如何将某一个工作表保存到新建的Excel中?

VBA 其他工作簿未正确关闭