ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 4047|回复: 14

[求助] 双击单元格 插入选择文件的完整路径

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-12-19 21:09 | 显示全部楼层 |阅读模式
各位高手,最近用到excel,需要以下功能,请各位i高手出手帮助:
1、双击某个单元格 例如A1,出现文件选择提示
2、浏览文件夹,选择要文件
3、选择文件后,在A1单元格里,插入该文件的完整路径,包含扩展名。
4、A列所有都有这个功能

谢谢大家

取得文件完整路径.zip (5.56 KB, 下载次数: 7)

TA的精华主题

TA的得分主题

发表于 2013-12-19 21:58 | 显示全部楼层
请测试:
  1. Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  2.     If Target.Count > 1 Then Exit Sub
  3.     If Target.Column <> 1 Then Exit Sub
  4.     f = Application.GetOpenFilename("所有文件 (*.*),*.*", , "Get list")
  5.     If TypeName(f) <> "Boolean" Then Target.Value = f
  6.     Cancel = True
  7. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2013-12-19 21:59 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
请看附件
取得文件完整路径.rar (11.29 KB, 下载次数: 25)

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-12-20 16:51 | 显示全部楼层
zhaogang1960 发表于 2013-12-19 21:59
请看附件

谢谢帮助哈,我试了非常好用。
请问如何把这个代码嵌套到别的代码里?

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-12-20 17:10 | 显示全部楼层
zhaogang1960 发表于 2013-12-19 21:59
请看附件

详细说下,我用网上的代码,做了个群发邮件的宏。
实现以下功能:
群发邮件,主题不同,正文不同,附件不同。

其中附件需要插入完整路径,我不会把代码嵌套到目前的代码里。
麻烦帮忙处理下。

附件见附件~~~


先谢谢了

群发邮件 - 副本.rar (18.03 KB, 下载次数: 9)


TA的精华主题

TA的得分主题

发表于 2013-12-20 17:16 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
hhlyd 发表于 2013-12-20 17:10
详细说下,我用网上的代码,做了个群发邮件的宏。
实现以下功能:
群发邮件,主题不同,正文不同,附件 ...

有很大变化,请说明具体要求

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-12-20 21:30 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
zhaogang1960 发表于 2013-12-20 17:16
有很大变化,请说明具体要求

你好
我上传的群发邮件那个附件;
E列是要插入附件路径和文件名的地方,比如双击E1,选择文件,插入所选文件的完整路径(含文件名)
就想实现这样的功能

TA的精华主题

TA的得分主题

发表于 2013-12-20 21:35 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
hhlyd 发表于 2013-12-20 21:30
你好
我上传的群发邮件那个附件;
E列是要插入附件路径和文件名的地方,比如双击E1,选择文件,插入所 ...

从第1列改为第5列即可:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Count > 1 Then Exit Sub
    If Target.Column <> 5 Then Exit Sub
    f = Application.GetOpenFilename("所有文件 (*.*),*.*", , "Get list")
    If TypeName(f) <> "Boolean" Then Target.Value = f
    Cancel = True
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-12-21 10:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
zhaogang1960 发表于 2013-12-20 21:35
从第1列改为第5列即可:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As B ...

谢谢回复
我现在的问题,您发的这段代码,如何和我原来的那段代码合在一起。
还得麻烦在帮帮忙

TA的精华主题

TA的得分主题

发表于 2013-12-21 13:15 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
hhlyd 发表于 2013-12-21 10:46
谢谢回复
我现在的问题,您发的这段代码,如何和我原来的那段代码合在一起。
还得麻烦在帮帮忙

我这里没有OoutLook,请自己测试吧:
  1. Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  2.     If Target.Count > 1 Then Exit Sub
  3.     If Target.Column <> 5 Then Exit Sub
  4.     f = Application.GetOpenFilename("所有文件 (*.*),*.*", , "Get list")
  5.     If TypeName(f) <> "Boolean" Then Target.Value = f
  6.     Cancel = True
  7.     On Error Resume Next
  8.     Dim rowCount, endRowNo
  9.     Dim objOutlook As New Outlook.Application
  10.     Dim objMail As MailItem
  11.     Dim arr, n&
  12.     n = Target.Row
  13.     Set objOutlook = New Outlook.Application
  14.     Set objMail = objOutlook.CreateItem(olMailItem)
  15.     With objMail
  16.         .To = Cells(n, 2).Value      '"邮件的地址"
  17.         .Subject = Cells(n, 3).Value      '"邮件主题"
  18.         .Body = Cells(n, 4).Value      '"邮件内容"
  19.         arr = Split(Cells(n, 5).Value, ";")
  20.         For n = LBound(arr) To UBound(arr)
  21.             .Attachments.Add (arr(n))      '"邮件的附件完整路径"
  22.         Next
  23.         .send
  24.     End With
  25.     Set objMail = Nothing
  26.     Set objOutlook = Nothing
  27.     MsgBox "邮件已发送", vbInformation
  28. End Sub
复制代码
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-11 20:04 , Processed in 0.026308 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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