宏来编辑excel文件中的多个链接

宏来编辑excel文件中的多个链接,excel,vba,Excel,Vba,您好,我正在处理excel工作簿,其中包含30个链接到此工作簿的文件。每个月,这30个文件都会根据当前月份进行重命名,并保存在当前月份文件夹中。现在我必须用这30个链接手动更新工作簿。我们可以借助宏来自动更新这30个链接,替换旧链接。mehow是正确的;对你的问题唯一可能的答案是肯定的,这是可能的 这不是一个答案,它只是为了证明这是可能的,并给你一个开始。你的问题几乎肯定会被关闭或搁置。尝试根据我的代码创建宏,然后在必要时返回特定问题 我的扩展名是xls,因为我仍然在用于创建此答案的计算机上使用

您好,我正在处理excel工作簿,其中包含30个链接到此工作簿的文件。每个月,这30个文件都会根据当前月份进行重命名,并保存在当前月份文件夹中。现在我必须用这30个链接手动更新工作簿。我们可以借助宏来自动更新这30个链接,替换旧链接。

mehow是正确的;对你的问题唯一可能的答案是肯定的,这是可能的

这不是一个答案,它只是为了证明这是可能的,并给你一个开始。你的问题几乎肯定会被关闭或搁置。尝试根据我的代码创建宏,然后在必要时返回特定问题

我的扩展名是xls,因为我仍然在用于创建此答案的计算机上使用Excel 2003。如果您使用的是更高版本,则扩展名将是xlsm或xlsx

我有三本作业本:硕士、一部、二部。我使用变量来保存工作簿dept1和dept2的名称。您可能需要在名称中包含源工作簿的路径。我使用了变量,因此可以很容易地更改名称。也许可以将它们设置为基于当前月份的表达式:

Wbook1 = Format(Now(), "yyyy-mmmm") & ".xls"
将Wbook1设置为2013-12月.xls

Dim LastMonth As Date
LastMonth = DateSerial(Year(Now()), Month(Now()) - 1, Day(Now()))
Wbook1 = Format(LastMonth, "yyyy-mmmm") & ".xls"
将Wbook1设置为2013-11.xls

Dim LastMonth As Date
LastMonth = DateSerial(Year(Now()), Month(Now()) - 1, Day(Now()))
Wbook1 = Format(LastMonth, "yyyy-mmmm") & ".xls"
follow宏将当前工作簿母版的Sheet1中的两个单元格设置为其他工作簿中的单元格值

Sub Try()

  Dim Wbook1 As String
  Dim Wbook2 As String

  Wbook1 = "Dept 1.xls"
  Wbook2 = "Dept 2.xls"

  With Worksheets("Sheet1")

    .Range("H18").Value = "='[" & Wbook1 & "]Sheet2'!D6"
    .Range("H19").Value = "='[" & Wbook2 & "]Sheet3'!D9"

  End With

End Sub
对第一条评论的答复

对你试图做的事情的模糊描述意味着我已经给了你尽可能多的信息。不要尝试更好的描述,因为这不是有人会根据详细规范创建完整解决方案的站点类型

我提供的宏演示了如何创建链接,将其他两个工作簿中的值复制到中。我使用了我能想到的最简单的代码,因此您应该能够根据自己的需要对其进行调整

根据我的代码,在主工作簿中创建一个宏,从源工作簿中创建一个链接。我只是从源工作簿中复制了值。也许您需要一个组合两个或多个值的表达式。尝试创建那个表达式。也许您想在主工作簿中搜索包含[2013年11月.xls]的公式,并用[2013年12月.xls]替换所有发生的情况。试试看


将您的需求分解为几个小步骤,并尝试一步一步地解决它。如果您的宏没有达到预期效果,并且您无法确定原因,请带着该宏返回,描述它的功能以及您希望它执行的操作,您可能会得到一个实例答案,因为这是本网站的专长。

是的,这是可能的,但我不会给您代码,因为堆栈溢出不是这样工作的。你需要展示你对正在解决的问题的最低限度的理解,展示你在解决问题上的尝试,等等。看看如何开始谢谢Tony和Mehow。我真的是个新手,如果你们能帮我更详细地了解这些东西,我将不胜感激。@user3115226。我已经在我的回答中添加了对你评论的回应。