VBA不会更新Excel链接

时间:2017-09-27 06:04:14

标签: excel vba excel-vba

我是新来的。感谢所有正在做出贡献并分享知识的人。

我有一个连接在他们之间的整个Excel文件网络。在每个月的月初,我正在制作每个文件的副本,以每个文件的名称反映月份和年份。 为了不每个月一个接一个地链接它们,我按照一个简单的逻辑制作了一个Macro。宏似乎适用于大多数文件,但是,在一个文件中,我遇到了一个问题。

这是我的代码:

Dim MISWB As Workbook
Workbooks.Open Filename:="Y:\AM\20" & Godina & "\MIS_" & Godina & "\1MIS" & Godina & Mesec & ".xlsx", UpdateLinks:=0
Set MISWB = ActiveWorkbook

'*****INPUT*****
ChDir "Y:\AM\20" & Godina & "\INPUT_" & Godina
ActiveWorkbook.ChangeLink Name:="Y:\AM\20" & Godina & "\INPUT_" & Godina & "\INPUT" & Godina & PrethodenMesec & ".xlsx", NewName:= _
"INPUT" & Godina & Mesec & ".xlsx", Type:=xlExcelLinks

Where:
- Godina = year
- Mesec = current month
- Prethoden mesec = previous month

好吧,当我在后台打开文件INPUT1709.xlsx时,宏似乎正在正确更新链接。 当我没有打开它并运行宏时,它不会正确更改链接,就好像“INPUT1709.xlsx”不存在一样。当我点击“EDIT LINKS”标签中的“OPEN SOURCE”时,它就是这么说的。

在其他文件中,无论INPUT文件是否打开,相同的代码都可以正常运行。例如:

'|***********************KWH***********************|
Dim KWHWB As Workbook
Workbooks.Open Filename:="Y:\AM\20" & Godina & "\KWH_" & Godina & "\KWh_" & Godina & Mesec & ".xls", UpdateLinks:=0
Set KWHWB = ActiveWorkbook

'*****INPUT*****
ChDir "Y:\AM\20" & Godina & "\INPUT_" & Godina
ActiveWorkbook.ChangeLink Name:="Y:\AM\20" & Godina & "\INPUT_" & Godina & "\INPUT" & Godina & PrethodenMesec & ".xlsx", NewName:= _
"INPUT" & Godina & Mesec & ".xlsx", Type:=xlExcelLinks

这里有什么想法?

谢谢。

1 个答案:

答案 0 :(得分:0)

......所以它开始了!如果我让这个问题听起来更糟,我会提前向我道歉,但是我会分享一个相同的情况如何转变为我(以及一些可能的修复)。

老实说,阅读你的故事引发了类似PTSD的恐慌,我处于同样的境地:多年来与多种相互关联的电子表格一起工作,宏将各种不断变化的不断变化的数据源混合在一起......并且成功为多家公司提供财务和分析报告,以不可思议的数据量创造奇迹,将Excel扩展到纯粹的能力极限。这是我生命中脆弱但令人生畏的时刻......阅读:“Confessions of an Excel addict”

......直到事情开始出错。阅读:“Is Business Overworking Excel?”

Excel功能非常强大,但它有局限性,当它因太多相互依赖的依赖关系而变得过于紧张时,诸如轻微的意外变化或其他微小的网络打嗝或电源波动之类的事情就会变成< em>蝴蝶会引发头痛的飓风,尤其是如果您的办公室依赖于此数据并且据我怀疑报道。阅读:"Data Degradation"

此特定问题的解决方法是耐心和故障排除技巧。我希望你有额外的时间在你的手上。

至少除了一个相同的文件之外的所有文件可能没关系;它缩小了很多 - 但一定意味着问题出在那个文件中。 (即,不同的文件中的错误可能会导致此操作失败。)您是否尝试跳过该文件并继续下一个文件?删除并重新填充上周的数据?改变了什么?观看:“Troubleshooting Theory”

除此之外,我的下一步将是从那里开始大而缩小问题,所以你要立即处理整个大海捞针。通过它的声音,即使问题只是一个单元格,发现它实际上是百万中的一个。阅读:“Repair a corrupted workbook”(微软唯一的建议)

额外备份所有内容(所有文件,月初至今,如果可能,甚至更早)。这可能是一种痛苦,或者是 真正 的痛苦,但由于您有上个月数据的单独“备份”副本,因此请制作另一份ALL的副本然后,逐个浏览文件,小心地删除所有上个月的数据,一旦它们全部为空,复制本月的数据进入他们。确保更改需要更新的任何日期和链接。在看到它是否有效之前,三重检查您还没有错过将本月数据恢复到上个月文件的任何内容。记住:“The 3-2-1 Backup Rule”

然后在尝试运行您通常会执行的过程时向Excel Gods祈祷。如果你很幸运,一切都会顺利进行,几乎没有数据丢失,办公室也没有过夜。

如果有效,恭喜!但我还没有完成!

立即制作这个月(工作)文件的另一个备份集,并将它们存放在它们所在的位置附近。 (我学到了很难的方法,为什么将文件复制到同一驱动器上的不同文件夹并不是一个好主意。)然后,销毁文件的错误副本,并对数据所触及的每台计算机进行碎片整理。

最后,这是最重要的一步,现在是时候承认Excel已经完成了它的工作,但是现在是时候过渡到一个系统了用于此类数据管理。

根据我的经验,曾经&#34;未成年人&#34;像这样的问题开始,它只会继续发生。 &#34;变通&#34;将会越来越频繁地灭火。最后,我向自己承认,是时候将所有内容转换为Microsoft Access了。研究:“什么时候从Excel切换到Access?”https://www.google.ca/searchq=when+is+it+time+to+switch+from+excel+to+access

即使您没有很多使用Access的经验并且正在寻找突然的学习曲线,因此Excel和Access可以相互协作,而且很快您和公司里的其他人都会感激你,因为它增加了可用性和安全性。可靠性,通过一个界面来组合以满足您的确切需求,扩展从来都不是问题。阅读:“使用Excel访问权限的十大理由”https://support.office.com/en-us/article/Top-10-reasons-to-use-Access-with-Excel

访问和我有一个&#34;霰弹枪婚礼&#34;但是我们过着幸福的生活。办公室的生活比以往任何时候都变得容易,我正在学习公司的新技能,当我最终说服高层公司为顶级SQL Server软件包支付一些真正的资金时,情况进一步改善,冗余备份,“直播“自动报道。访问仍然是漂亮的前端面,而SQL只在黑暗的地下室生活,处理所有繁重的工作,但从不抱怨。阅读:“How to start any career without any experience”

事实上,该系统最终运作良好,公司决定将其转售给其他类似的公司,其基本上只包括复制和销售。粘贴现有文件,在此处更改徽标或在此处更改报告名称。

我非常荣幸能成为这样一位具有前瞻思维的超级巨星......我从未告诉他们我当时并没有采取主动,甚至我也没有这样做过。直到后来才意识到我们与灾难性数据丢失有多接近。阅读:“Backup Overview”

我们都过着快乐的生活。我喜欢在线回答Excel问题,因为在那之后,一切似乎都很容易。 ......直到今天我读你的帖子。希望你能够在你意识到你有一个 reallllly 糟糕的一天之前有多紧密的情况下解决这个问题。

祝你好运!观看:“My Old Friend Excel”(Original TV Commercial,1992)