ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[讨论] excel-VBA,操作dot文件。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2010-1-20 15:50 | 显示全部楼层 |阅读模式
Excel---Word联动,原来自己做的一个文电办理辅助工具
http://club.excelhome.net/viewth ... &highlight=word

在此帖学习了,word的Dot文件的应用。
  以下语句的组合应用
   Set wdapp = GetObject(, "Word.Application")

  dotnamestr = dotnamestr & "pbd.dot"
   Set mydoc = wdapp.Documents.Add(dotnamestr)

请问:各位大侠的问题是。
excel-vba调用word的模块的功能模块是不是这种模式。

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-1-20 15:53 | 显示全部楼层
程序摘要如下。
Sub sendtoword()
   Dim wdapp As Object
   On Error Resume Next
   
   Set wdapp = GetObject(, "Word.Application")
   If Err.Number <> 0 Then Err.Clear: Set wdapp = CreateObject("Word.Application")
   wdapp.Visible = True
   
   Dim mydoc As Word.Document
   Dim dotnamestr As String
   
   dotnamestr = Workbooks("办理工具.xls").Path & "\"
    If miji_lbk.Value = "明传" Then
       dotnamestr = dotnamestr & "ming"
      Else
       dotnamestr = dotnamestr & "mi"
    End If
    If ispbdorbld Then
       dotnamestr = dotnamestr & "pbd.dot"
      Else
       dotnamestr = dotnamestr & "bld.dot"
    End If
   
    Set mydoc = wdapp.Documents.Add(dotnamestr)
    With mydoc.Tables(1)
      .Cell(2, 2).Range = faunit_wbk.Text
      .Cell(2, 4).Range = dengji_lbk.Value
      If miji_lbk.Value <> "明传" Then
         .Cell(2, 6).Range = miji_lbk.Value
      End If
      .Cell(3, 2).Range = shoutimestr
      .Cell(3, 4).Range = rijihao_wbk.Text
      .Cell(4, 2).Range = biaoti_wbk.Text
      If ispbdorbld Then
         If Left(nibanyijian_wbk.Text, 4) <> "    " Then
            nibanyijian_wbk.Text = "    " & nibanyijian_wbk.Text
         End If
         .Cell(5, 2).Range = nibanyijian_wbk.Text
         .Cell(5, 2).Merge mergeto:=.Cell(6, 2)
         .Cell(5, 2).VerticalAlignment = wdCellAlignVerticalCenter
       End If
     End With

    If mydoc.Range.Information(wdNumberOfPagesInDocument) = 2 Then
       mydoc.Tables(1).Cell(4, 2).Range.Font.Size = 16
       mydoc.Tables(1).Cell(5, 2).Range.Font.Size = 14
       mydoc.Tables(1).Cell(4, 2).Range.ParagraphFormat.LineSpacingRule = wdLineSpaceExactly
       mydoc.Tables(1).Cell(5, 2).Range.ParagraphFormat.LineSpacingRule = wdLineSpaceExactly
       mydoc.Tables(1).Cell(5, 2).Range.ParagraphFormat.LineSpacing = 22
       mydoc.Tables(1).Cell(4, 2).Range.ParagraphFormat.LineSpacing = 22
       mydoc.Tables(1).Rows(4).HeightRule = wdRowHeightAuto
       mydoc.Tables(1).Rows(5).HeightRule = wdRowHeightAuto
    End If
    Dim namestr As String
    namestr = Workbooks("办理工具.xls").Path & "\doc\" & miji_lbk.Value & rijihao_wbk.Text & ".doc"
    If mydoc.Range.Information(wdNumberOfPagesInDocument) = 1 Then
          mydoc.PrintOut
          If MsgBox("本次生成的批办单需要保存吗?", vbQuestion + vbYesNo) = vbYes Then
             mydoc.SaveAs Filename:=namestr
          End If
          mydoc.Close savechanges:=wdDoNotSaveChanges
          Set mydoc = Nothing
          If wdapp.Documents.Count = 0 Then wdapp.Quit
       Else
          MsgBox "本次生成的批办单为两页,已保存,请到WORD中去修改"
          mydoc.SaveAs Filename:=namestr
    End If
End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-19 14:47 , Processed in 0.030323 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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