ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

请教各位:如何在excel中用vba语言引用word中宏运行出来的数据

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-8-11 15:52 | 显示全部楼层 |阅读模式
要实现的功能:使excel对应单元格,内容为word中宏运行出来的text1

已经测试,在word中的宏可以正常运行得到的这个text1

word宏代码如下:
Public Sub 选定文本66()
Dim begin1, end1, c As Long, i As Long, text1 As String

i = 1
Do
begin1 = "7.4.1 基金基本情况" & chr(13)
        
        
       With Selection.Find
        .Text = begin1
        .Replacement.Text = ""
        .Forward = True
        
    End With
   
        Selection.Find.Execute
         
        a = Selection.Start
        
        
'选中截止的位置
         end1 = "7.4.2 会计报表的编制基础" & chr(13)
        
         With Selection.Find
        .Text = end1
      
         End With
        
     
      
       Selection.Find.Execute
      
      
               b = Selection.Start
      
        ActiveDocument.Range(Start:=a, End:=b).Select
        
        c = Selection.Paragraphs.Count
                    
             'ThisDocument.Activate
           
            If i < c + 1 Then
            Selection.Paragraphs(i).Range.Select
            
             text1 = text1 & chr(13) & Selection.Text
            
             i = i + 1
            Else
            'Debug.Print text1
             End If
      Loop Until i > c
   
  
End Sub

在excel中录制的如下,在excel中用这个代码调动word中的宏,并且想让excel的单元格内,文本为宏运行出来的文本。
Public Sub zwycopypaste()
Dim act As String
Dim mypath As String
Dim folder$
Dim wddoc As Object
Dim wdapp As Object
act = ThisWorkbook.Name
folder = ThisWorkbook.Path
mypath = Dir(folder & "\*.docx")
m = 1
Do While mypath <> ""
m = m + 1
Set wdapp = CreateObject("word.application")
Set wddoc = wdapp.documents.Open(folder & "\" & mypath)
wdapp.Visible = True
wdapp.Run "选定文本66"
wddoc.Close
wdapp.Quit
Set wddoc = Nothing
Set wdapp = Nothing


Workbooks(act).Sheets(1).Activate

ActiveSheet.Cells(m, 1).Value = abc

ActiveSheet.Cells(m, 2).Value = Left(mypath, Len(mypath) - 5)
mypath = Dir()


Loop
End
MsgBox "done"
End Sub

问题实质:
在word中的宏运行结束后,宏中的文本消失了,我想要把这个文本text1保存下来,使之可以在excel中被用到。

请问这个能怎么实现呢?谢谢各位朋友!



TA的精华主题

TA的得分主题

 楼主| 发表于 2017-8-11 15:53 | 显示全部楼层
excel那里,ActiveSheet.Cells(m, 1).Value = abc  改成text1

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-8-11 15:54 | 显示全部楼层
excel那里,ActiveSheet.Cells(m, 1).Value = abc  改成text1 ,之后也无法完成目标功能。

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-8-11 22:49 来自手机 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-26 14:00 , Processed in 0.028997 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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