ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何使用word的宏,打开一个Excel文件

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-3-7 14:15 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
大家好,我是新来的人,有一个问题需要请教大家,希望能得到大家的帮助,谢谢!
我遇到的问题是:
要在word的版本中,通过点击某个控件打开本地的一个Excel文件。
我的做法是在word中创建一个宏,但是在宏的VB编程中,程序报错没通过,在VB6.0的编辑器中运行程序是可以打开Excel文件的。

所以,请求大家指点一下在word的宏中,打开Excel文件的编程。
如果要实现该目的,除了用宏外,还有其他方法,也烦请指点一下。


----------------附:我的word宏中的VB代码-----------------------------------
Private Sub Command1_Click()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
FileName = "\生产调度决策数据.xls"
On Error Resume Next
    Set xlApp = GetObject(, "Excel.Application")     '判断Excel是否打开
    If Err.Number <> 0 Then
        Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象
        xlApp.Visible = False '设置EXCEL对象不可见
    End If
    Err.Clear
   
    If Dir(App.Path & FileName) = "" Then    '判断文件是否存在
        MsgBox App.Path & FileName & ":未找到!", vbOKOnly, "友情提示"
        Exit Sub
    End If
   
    '判断文件是否打开
    For Each xlBook In xlApp.Workbooks
        If xlBook.Name = Mid(FileName, 2) Then
            MsgBox "文件已打开!请不要重复打开。", vbOKOnly, "友情提示"
           xlBook.Activate
            xlApp.WindowState = xlMaximized
            Exit Sub
        End If
    Next
   
    Set xlBook = xlApp.Workbooks.Open(App.Path & FileName) '打开工件簿文件
    xlBook.RunAutoMacros (xlAutoOpen) '运行EXCEL启动宏
    xlApp.Visible = True
End Sub

出错是因为Dim xlApp As Excel.Application和Dim xlBook As Excel.Workbook的用户类型未定义

[ 本帖最后由 power218 于 2011-3-7 14:21 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-3-8 11:08 | 显示全部楼层
一直等不到人解决,后来自己搞定了,呵呵,之前从没接触过VB,让大家见笑了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-3-8 11:09 | 显示全部楼层

贴上我最后成功的宏编码,欢迎大家多多指教

Dim xLApp
Dim xlBook
FileDir = "E:\查询\生产调度决策数据.xls"
'FileName = "\生产调度决策数据.xls"
On Error Resume Next
    Set xlApp = GetObject(, "Excel.Application")     '判断Excel是否打开
    If Err.Number <> 0 Then
        Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象
        xlApp.Visible = False '设置EXCEL对象不可见
    End If
    Err.Clear
    If Dir(FileDir) = "" Then    '判断文件是否存在
        MsgBox FileDir & ":未找到!", vbOKOnly, "友情提示"
        Exit Sub
    End If
    '判断文件是否打开
    'For Each xlBook In xlApp.Workbooks
    '    If xlBook.Name = Mid(FileName, 2) Then
    '        MsgBox "文件已打开!请不要重复打开。", vbOKOnly, "友情提示"
    '       xlBook.Activate
    '        xlApp.WindowState = xlMaximized
    '        Exit Sub
    '    End If
    'Next
    Set xlBook = xlApp.Workbooks.Open(FileDir) '打开工件簿文件
    xlBook.RunAutoMacros (xlAutoOpen) '运行EXCEL启动宏
    xlApp.Visible = True

TA的精华主题

TA的得分主题

发表于 2011-8-20 22:02 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
楼主:
   请问,在word调用excel后,如何用宏在word中给excel中写入数组?

    我用word的宏统计产生了一批数组,想在word中调用excel的宏,把数据直接写到excel中,可否实现?

TA的精华主题

TA的得分主题

发表于 2011-8-21 08:58 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
在 word 中实现了生成数据及拷贝  
Windows(WinD1).Activate
  Selection.MoveUp Count:=10000, Extend:=wdExtend  ' Unit:=wdLine, Count:=11,
  Selection.Copy
  
转到excel 中
  Set xlApp = GetObject("excel.application")
  If Err <> 0 Then
    Set xlApp = CreateObject("Excel.application")
  End If
  xlApp.Visible = True
  Err.Clear
  Set xlBook = xlApp.workbooks.Add  ' .NewDocument
  
以下想运行 excel 的宏, 但无法实现
  With xlApp.runautomacros
    .Sheets("Sheet1").Select
    .ActiveCell.Select
    .ActiveSheet.Paste
  End With
  该如何写,才能在 word 中实现?


返回到 word 中
  Windows(WinD2).Activate
  Selection.MoveUp Count:=10000, Extend:=wdExtend  ' Unit:=wdLine, Count:=11,
  Selection.Copy

TA的精华主题

TA的得分主题

发表于 2017-10-23 12:42 | 显示全部楼层
baoshishang 发表于 2011-8-21 08:58
在 word 中实现了生成数据及拷贝  
Windows(WinD1).Activate
  Selection.MoveUp Count:=10000, Extend:= ...

应该不难,可以变通实现。

TA的精华主题

TA的得分主题

发表于 2018-6-20 20:42 | 显示全部楼层
这是word打开excel读取其中一个worksheet的表格数据并赋值给data数组
Sub main()
Dim xls
Dim wkbook
Dim sht

On Error Resume Next
Set xls = CreateObject("excel.application")
xls.Visible = False

Set fso = CreateObject("scripting.filesystemobject")
With Application.FileDialog(msoFileDialogFilePicker)
    .Title = "请选择excel文档"
    'Add a filter that includes GIF and JPEG images and make it the first item in the list.
    .Filters.Add "excel文档", "*.xls; *.xlsm; *.xlsx", 1
    'Sets the initial file filter to number 2.
    .FilterIndex = 2
     If .Show = -1 Then
       xlsPath = .SelectedItems(1)
     End If
End With

Set wkbook = xls.workbooks.Open(xlsPath)
Set sht = wkbook.worksheets("汇总表")
Data = sht.Range("a1").currentregion.Value

End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-11 22:47 , Processed in 0.022267 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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