excel 2010 用VBA怎么批量替换链接

图中的“数量”列 是链接在储存在服务器上的另外一个工作簿中,每个月仓库都会制作一张新的《出入库报表》,储存的地址在服务器相同文件夹内,我现在想请教的就是,如何依次点击月份按钮,就能替换原链接到当前月份。
比如这是一月地址 Common\Manufacturing\在库管理\财务在库\2015\出入库报表\[出入库报表201501.xlsx]1月国外采购(团内AB) 二月就改变为Common\Manufacturing\在库管理\财务在库\2015\出入库报表\[出入库报表201502.xlsx]2月国外采购(团内AB)
[出入库报表201501.xlsx]这是工作薄每个月会有一张新的
1月国外采购(团内AB)这是工作簿下的工作表 表名也会根据月份重命名
我用一下的VBA为什么没反应? 求高人指点!!!谢谢!!!
Sub °´按钮3_Click()

For Each c In Worksheets(1).Hyperlinks
c.Address = Replace(c.Address, "\\SHM-APP-002\Common\Manufacturing\在库管理\财务在库2015\出入库报表\出入库报表201501.xlsx]1月国外采购(团内AB)", "\\SHM-APP-002\Common\Manufacturing\在库管理\财务在库2015\出入库报表\出入库报表201502.xlsx]2月国外采购(团内AB)
Next
End Sub

其实用公式,然后通过一个单元格来选择月份也行,弄个单元格存放路径,大体是这么个意思

A1设置数据有效性,引用D1:D3

A4设置超链接,根据A1的选择改变指向文件。

追问

对不起 我不是很理解 那怎么替换我原来的链接呢 麻烦您可以讲的详细一些吗?
谢谢!
我不是要打开链接,是要根据选择的月份在不同的工作簿中查找物品对应的数量

追答

那你还是用vba打开文件查找后写入吧,还有一种办法是把各月数值都读到本表中存储,然后用公式在本表中取值

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-03-11

亲,没看懂为什么要用循环,也不理解用replace函数的意义,貌似一句话就可以了:

Sub °′按钮3_Click()
Range("A2").Hyperlinks(1).Address = "\\SHM-APP-002\Common\Manufacturing\在库管理\财务在库2015\出入库报表\出入库报表201502.xlsx]2月国外采购(团内AB)"
End Sub

追问

您好 非常感谢您的回答 我试了一下
它提示 运行时错误“9” 下标越界
我刚接触VBA不是很懂 麻烦您将的详细一些 或者把用到的语言讲解一下
非常感谢‘您

追答

我这边测试是通过的,请截图上来看一下你按钮中的代码。

追问

好的 A2也不行 方便的话可以留个联系方式吗?麻烦您了


追答

为什么要改成Range("A3"),看图片应该是Range("A2")。

追问

对不起 A2 也是一样的错误 我想改成A3试试看的,结果也不行

追答

请问你的A2单元格是不是原来没有设置链接啊?如果没有的话,第一次需要用“添加”链接的命令;如果已经有,才是你说的“替换”,即“修改”。代码更改如下:

Sub °′按钮3_Click()
If Range("A2").Hyperlinks = 0 Then
    ActiveSheet.Hyperlinks.Add Range("A2"), Address:="在库管理\财务在库2015\出入库报表\出入库报表201502.xlsx]2月国外采购(团内AB)"
Else
    Range("A2").Hyperlinks(1).Address = "\\SHM-APP-002\Common\Manufacturing\在库管理\财务在库2015\出入库报表\出入库报表201502.xlsx]2月国外采购(团内AB)"
End If
End Sub

相似回答