求EXCEL函数与宏,用于创建超链接到某个地址的指定名称的EXCEL文件

来源:百度知道 编辑:UC知道 时间:2024/09/24 22:37:00
朋友,我在工作中遇到以下难题:
假设某个EXCEL档的有第X列和第Y列,X列的每一行用来显示每一个项目的名称,现在希望Y列用来链接到每一个名称对应的另外一张EXCEL文件(该文件以此名称来命名),能否用函数来实现?
函数的变量即为同一行的第X列里的项目名称,函数的值为一个超链接,链接到的位置为指定某个硬盘中文件路径,该路径的最终名称(即另外一个EXCEL文件名)与函数的变量即同一行的第X列里的项目名称相同

这个函数要求对第Y列的每一行,即不用每行都手动输入超链接及其地址,而是总共只需要应用一次函数,之后一旦第X列某一行有所输入,第Y列对应的单元格自动变成相应的超链接

另外此种手段为“超链接到另外一个EXCEL档”,点击超链接的话将会打开一整张表格,有时不够直观,现在另求一个函数,能够“超链接到指定的EXCEL档里的某一个单元格(例如单元格第12行P列,所有被另外指向的EXCEL档版面相同)”使得原始EXCEL档的第Z列的每一行的每一个单元格显示内容为:对应的第Y列的单元格指向的EXCEL档里的固定位置单元格

看到这里辛苦了,函数和宏只要写出来就好,我会尽力看懂,相信你牛人!谢谢了

假设 X1 为 Book1, 文件所在路径为 D:\MyDocument

超链接到此工作簿用 Y1= HYPERLINK("[D:\MyDocument\" & X1 & ".xls]",X1)

超链接到此工作簿Sheet1的P12用 Y1= HYPERLINK("[D:\MyDocument\" & X1 & ".xls]Sheet1!$P$12",X1) 点击后直接转到P12单元格,这是你的第2个要求

Z1显示对应P12的值: Z1=INDIRECT("'D:\MyDocument\[" & X1 & ".xls]Sheet1'!$P$12")

以上公式可下拉复制。

如果不清楚可以补充。

来自:求助得到的回答

希望有帮助:
在要处理的sheet上右键,查看代码,粘贴以下代码(仅供参考):
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next '忽略错误继续执行VBA代码,避免出现错误消息
Application.EnableEvents = False '禁止触发连锁事件

a = Target.Value
b = Target.Row

Cells(b, y).Hyperlinks.Add Anchor:=Cells(b, y), Address:=a & ".xls"

Application.EnableEvents = True '允许触发连锁事件
On Error GoTo 0 '恢复正常的错误提示
End Sub

假设你的X是A列,Y是B列,在B1输入公式

=HYPERLINK