2013-12-18 81 views
-2

您好我正在处理Excel工作簿,其中包含30个链接到此工作簿的文件。每月将这30个文件根据当前月份重新命名并保存在当前月份文件夹中。现在我必须用这30个链接手动更新工作簿。我们可以在宏的帮助下做到这一点,通过替换旧的链接自动更新这30个链接。宏来编辑Excel文件中的多个链接

+0

是的,它可能但我不会给你代码,因为这不是Stack Overflow的工作方式。您需要展示对正在解决的问题的最小理解,展示解决问题的尝试等。请参阅[**帮助中心**](http:// stackoverflow。com/help)开始 – 2013-12-18 13:09:46

回答

0

没有什么是正确的;对你的问题唯一可能的答案是“是的,这是可能的。”

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

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

我有三个工作簿:“主”,“部门1”,“部门2”。我已经使用变量来保存工作簿“部门1”和“部门2”的名称。您可能需要在名称中包含源工作簿的路径。我使用了变量,因此名称可以很容易地更改。也许他们可以设置为基于当前月份的表达式:

Wbook1 = Format(Now(), "yyyy-mmmm") & ".xls" 

会将Wbook1设置为“2013-December.xls”。

Dim LastMonth As Date 
LastMonth = DateSerial(Year(Now()), Month(Now()) - 1, Day(Now())) 
Wbook1 = Format(LastMonth, "yyyy-mmmm") & ".xls" 

会将Wbook1设置为“2013-November.xls”。

下面的宏将当前工作簿(“主”)的“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-November.xls]”的公式,并用“[2013-December.xls]”替换每个发生的事件。试试看。

将您的需求分解为微小步骤,并尝试一次解决一步。如果你的宏没有达到你期望的水平,并且你无法确定为什么,那么回到这个宏,描述它做了什么以及你想要它做什么,你可能会得到一个实例答案,因为这是该网站专门研究的内容

+0

谢谢Tony和Mehow。我对宏真的很陌生,如果你们能够更详细地帮助我解决这个问题,我会非常感激。 – user3115226

+0

@ user3115226。我在回答中添加了对您评论的回复。 –