Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 15102|回复: 8

[已解决]用函数或VBA超链接到另一个工作簿的指定工作表

[复制链接]
发表于 2014-7-21 10:28 | 显示全部楼层 |阅读模式
在主工作簿中做了一个下拉菜单,下拉内容只做了20个,可能会不断的增加,怎样根据下拉菜单的内容超链接到另一个工作簿中的指定工作表中的A1位置。
最佳答案
2014-7-21 17:13
魔蝎小手 发表于 2014-7-21 16:20
大神呀,赞一个,要的就是这个结果 ,但还有一点,能不能在空白或不在下拉菜单的范围内时不要出 ...
  1. Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  2. Dim sht As Worksheet
  3. Set wb = Workbooks.Open(ThisWorkbook.Path & "" & "细工作内容.xls")
  4. Cancel = False
  5. For Each sht In wb.Sheets
  6. wb.Sheets(1).Cells(K + 1, "z") = sht.Name
  7. K = K + 1
  8. Next
  9. If Target.Column = 4 Then
  10. If Application.CountIf(wb.Sheets(1).[z:z], Target.Offset(, -1).Value) = 0 Then
  11. Sheet1.Activate: MsgBox "不存在此工作表": Exit Sub: End
  12. Else: wb.Sheets(Target.Offset(, -1).Value).Activate
  13. End If
  14. End If
  15. End Sub
复制代码
替换原代码即可

超链接到另一个工作簿的指定工作表.rar

4.5 KB, 下载次数: 141

发表于 2014-7-21 11:21 | 显示全部楼层
打开后确认是否启用了宏 大致意思我看不懂 我就做了一个表的超链接

超链接到另一个工作簿的指定工作表.rar

7.98 KB, 下载次数: 84

回复

使用道具 举报

 楼主| 发表于 2014-7-21 11:32 | 显示全部楼层
李建军 发表于 2014-7-21 11:21
打开后确认是否启用了宏 大致意思我看不懂 我就做了一个表的超链接

不是这样子的,要求是,只在主工作簿内进行操作,如在下拉菜单中选择了张5,那么,自动在右边一个单元格中建立对应张5的超链接,点击就能打开《细工作内容》中的张5工作表
回复

使用道具 举报

发表于 2014-7-21 12:52 | 显示全部楼层
解压 放到同一个文件夹下 双击进入 即可 附件测试

超链接到另一个工作簿的指定工作表.rar

14.96 KB, 下载次数: 94

回复

使用道具 举报

 楼主| 发表于 2014-7-21 13:41 | 显示全部楼层
易安1 发表于 2014-7-21 12:52
解压 放到同一个文件夹下 双击进入 即可 附件测试

非常感谢你的答案,但还不是我想要的结果,可能我第一次的附件中没有说明清楚,请看这次的附件。你现的做的VBA是能实现,但我这工作任务中会列出很多人的名字,那么,我需要的是点对应人的名字就能进入。

超链接到另一个工作簿的指定工作表2.rar

8.52 KB, 下载次数: 31

回复

使用道具 举报

发表于 2014-7-21 14:09 | 显示全部楼层
{:061:} 已修改

超链接到另一个工作簿的指定工作表2.rar

17.74 KB, 下载次数: 232

回复

使用道具 举报

 楼主| 发表于 2014-7-21 16:20 | 显示全部楼层
易安1 发表于 2014-7-21 14:09
已修改

大神呀,赞一个,要的就是这个结果 ,但还有一点,能不能在空白或不在下拉菜单的范围内时不要出来那错误调试窗口呀。或出来个自定义的错误提示也行。
回复

使用道具 举报

发表于 2014-7-21 17:13 | 显示全部楼层    本楼为最佳答案   
魔蝎小手 发表于 2014-7-21 16:20
大神呀,赞一个,要的就是这个结果 ,但还有一点,能不能在空白或不在下拉菜单的范围内时不要出 ...
  1. Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  2. Dim sht As Worksheet
  3. Set wb = Workbooks.Open(ThisWorkbook.Path & "" & "细工作内容.xls")
  4. Cancel = False
  5. For Each sht In wb.Sheets
  6. wb.Sheets(1).Cells(K + 1, "z") = sht.Name
  7. K = K + 1
  8. Next
  9. If Target.Column = 4 Then
  10. If Application.CountIf(wb.Sheets(1).[z:z], Target.Offset(, -1).Value) = 0 Then
  11. Sheet1.Activate: MsgBox "不存在此工作表": Exit Sub: End
  12. Else: wb.Sheets(Target.Offset(, -1).Value).Activate
  13. End If
  14. End If
  15. End Sub
复制代码
替换原代码即可
回复

使用道具 举报

发表于 2016-4-26 15:19 | 显示全部楼层
如果是多个工作薄内呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-19 03:51 , Processed in 0.377001 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表