设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2146|回复: 2
打印 上一主题 下一主题

[与其它组件] 导出Access的超链接到Excel

[复制链接]
1#
发表于 2011-12-19 11:45:20 | 显示全部楼层
你应该用绝对路径才能处理的。俺还特意录制了下视频供参考
  1. '其它说明:
  2. '1、需要引用Excel 11.0 库。
  3. '2、超链接应设置为绝对路径(而不是相对路径),详见第二条记录。
  4. Sub test()

  5. Dim rst As New ADODB.Recordset
  6. Dim exl As Excel.Application
  7. Dim wk As Workbook
  8. Dim ws As Worksheet
  9. '打开记录集,并创建Excel控件。
  10. rst.Open "邮件列表", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
  11. Set exl = CreateObject("Excel.Application")
  12. '删除旧文件,如出错则跳步。
  13. On Error Resume Next
  14. If Dir("D:\邮件列表.xls") Then Kill "D:\邮件列表.xls"
  15. '创建工作簿,并激活第一个工作表
  16. Set wk = exl.Workbooks.Add()
  17. wk.Sheets(1).Activate
  18. Set ws = wk.ActiveSheet
  19. '写入表头
  20. For i = 0 To rst.Fields.Count - 1
  21.     ws.Range("A1").Offset(0, i) = rst.Fields(i).Name
  22. Next
  23. i = 0
  24. '写入记录内容
  25. For i = 1 To rst.RecordCount
  26.     ws.Range("A1").Offset(i, 0) = rst(0)
  27.     ws.Range("A1").Offset(i, 1) = rst(1)
  28.     ws.Range("A1").Offset(i, 2) = rst(2)
  29. '写入超链接公式。请特别留意里面的转义字符写法。
  30.     ws.Range("A1").Offset(i, 3) = "=hyperlink(""" & Left(rst(3), InStr(1, rst(3), "#")) & """,""" & Left(rst(3), InStr(1, rst(3), "#") - 1) & """)"
  31.     ws.Range("A1").Offset(i, 4) = rst(4)
  32.     rst.MoveNext
  33. Next
  34. '关闭记录集,保存数据后关闭电子表格。
  35. rst.Close
  36. Set rst = Nothing
  37. wk.SaveAs "D:\邮件列表.xls"
  38. wk.Close
  39. MsgBox "数据已成功导出到:D:\邮件列表.xls"
  40. End Sub
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

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

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-14 11:16 , Processed in 0.074903 second(s), 24 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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