VBA不更新Excel链接

我刚来这地方。 感谢所有贡献的人,分享他们的知识。

我有一个完整的连接在一起的Excel文件的networking。 在每个月初,我正在复制每个文件,反映每个文件的名称的月份和年份。 为了不每月一个一个的链接,我按照一个简单的逻辑做了一个macros。 macros似乎为大多数的文件工作,但是,在一个文件中,我遇到了一个问题。

这是我的代码:

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时,macros似乎正在更新链接。 当我没有打开它,并运行macros,它不会正确地更改链接,就像“INPUT1709.xlsx”不存在一样。 这就是当我从“编辑链接”标签中点击“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 

有什么想法发生在这里?

谢谢。

…就这么开始了! 我提前道歉,如果我让这个问题听起来更糟糕,但我会分享一个相同的情况如何扭转我们(和一些可能的修复)。

老实说,读你的故事引发了类似PTSD的恐慌,我也处于同样的状况:多年来与大量相互关联的电子表格工作,macros观混合了无数不断变化的不断变化的数据源……并成功地处理财务和分析为多家公司报告,以难以想象的数据量创造奇迹,将Excel扩展到能力的极限。 这是我一生中一个脆弱但令人敬畏的时刻…阅读: “一个Excel瘾君子的自白”

…直到事情开始出错。 阅读: “商业过度的Excel?

Excel是非常强大的,但是它有一定的局限性,当它被拉得太细,有太多相关的依赖关系的时候,事情就像一个小小的意想不到的变化,或者一个小小的networking呃逆或者电源波动,都可能成为引发头痛飓风蝴蝶 ,特别是如果您的办公室依赖于我所怀疑的数据和报告。 阅读关于: “数据退化”

解决这个问题的方法是耐心和排除故障的技巧。 我希望你有更多的时间在你手上。

除了一个相同的文件外,至less所有的文件都可以。 把它缩小了很多 – 但并不一定意味着问题在那个文件里。 (也就是说, 不同文件中的错误可能会导致此问题出现。)您是否尝试跳过该文件并在下一个文件上移动? 删除并重新填写上周的数据? 什么改变了? 观看: “故障排除理论”

除此之外,我的下一步就是从这里开始大大缩小问题的范围,所以你一下子处理整个草垛。 从它的声音来看,即使这个问题只是一个细胞,发现它实际上是一百万个镜头中的一个 。 阅读: “修复损坏的工作簿” (微软唯一的build议)

一切的额外备份(所有文件,月份到最新,甚至在可能之前)。 这可能是一个痛苦,也可能是一个真正的痛苦,但是由于你有一个上个月的数据的单独的“备份”副本,所以做一个所有的副本,然后逐个通过文件, 仔细删除所有的上个月数据,一旦它们都是空的,把这个月的数据复制到它们中。 确保你改变了需要更新的date和链接。 在看到它是否有效之前, 三重检查你是否在将本月的数据恢复到上个月的文件中漏掉任何东西。 记住: “3-2-1备份规则”

然后在尝试运行您通常所需的stream程时,向Excel中的众神祈祷。 如果幸运的话,一切都将顺利进行,最大限度地减less数据丢失,也不会在办公室过夜。

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

立即制作这个月份(工作)文件的另一个备份集,并将它们存储在远离它们的地方。 (我学会了为什么将文件复制到同一个驱动器上的其他文件夹不是一个好主意。)之后,销毁文件的错误副本,并整理数据所触及的每台计算机。

最后, 这是最重要的一步 ,是时候认识到Excel已经很好地完成了工作,但现在是时候转换到这种types的数据pipe理系统上了。

根据我的经验,一旦这样的“小”问题开始,就会一直持续下去。 “解决方法”将越来越频繁地扑灭火灾。 最后,我向自己承认,现在是把所有东西都转换到Microsoft Access的时候了。 研究:“什么时候从Excel切换到Access?” https://www.google.ca/searchq=when+is+it+time+to+switch+from+excel+to+access

即使您对Access没有太多的经验,并且正在寻找一个突然的学习曲线,由于Excel和Access是相互合作的,所以这个改变将相对容易,很快您和公司的其他人将感谢您所做的事情,因为它提高了可用性和可靠性,并且提供了一个满足您确切需求的界面,扩展也不是问题。 阅读:“使用Excel访问Excel的十大理由” https://support.office.com/zh-cn/article/Top-10-reasons-to-use-Access-with-Excel

访问和我有点“猎枪婚礼”,但我们从此过上幸福的生活。 在办公室生活变得比以前更容易了,我正在学习公司的一些新技能,而当我最终说服高层人员为顶级SQL Server软件包,冗余备份提供一些真正的资金时,事情进一步改善,活“自动报告。 访问仍然在那里作为漂亮的前端面孔,而SQL独自住在黑暗的地下室,处理所有繁重的工作,但从不抱怨。 阅读: “如何开始任何职业没有任何经验”

事实上,这个系统最终做得如此出色,以至于公司决定把它卖给其他类似的公司,这些公司基本上只是复制和粘贴现有的文件,在这里改变一个标识或者一个报告名称。

作为这样一位有前瞻性的超级巨星,我获得了巨大的回报……我从来没有告诉他们我当时并没有主动 ,甚至直到后来我才意识到我们有多么接近灾难性的数据丢失。 阅读: “备份概述”

我们都从此过上幸福快乐的生活。 我喜欢在网上回答Excel问题,因为在那之后,一切似乎都很简单。 …直到今天当我读你的post。 希望你能把这个问题弄清楚,然后才能意识到自己离真正糟糕的一天有多近。

祝你好运! 观看: “我的老朋友Excel” (原始电视广告,1992)