vb的内容如何导出到word中

2024-11-23 17:33:11
推荐回答(4个)
回答1:

先用word建立一个“模板”,把该画的表格和格式设置好,然后调出“窗体”工具栏,在你想要接收vb传来数值的位置加入“文本型窗体域”(就是文本框),在“窗体”工具栏上把“域底纹”点一下把域的底纹去掉,要不然不好看。加入域的时候记得要为每个“域”的属性里“书签”命名(其实就是相当于vb中的“名称”),保存退出(假设为c:\doc1.doc)。
在vb中新建工程并引用Microsoft Word x Object Library,在窗体中加入与word中域相对应的文本框,加一个command,加入类似以下的代码(我只用了一个文本框做例子,你自己再扩展一下吧):
Private Sub Command1_Click()
Dim doc1 As Word.Application
Set doc1 = New Word.Application
doc1.Documents.Open ("c:\doc1.doc")
doc1.ActiveDocument.FormFields("text1").Result = Text1.Text
doc1.ActiveDocument.Save
doc1.Documents.Close
Set doc1 = Nothing
End Sub
这样一来,我就把窗体中text1中的text值传入到了名为doc1.doc的word文件中。

回答2:

  Dim cn As New ADODB.Connection ‘定义数据库
  Dim rs As New ADODB.Recordset
  Dim scan As String ‘存储查找数据库
  Dim Appword As Word.Application ’定义WORD模型变量
  Dim Newword As Word.Document
  Set Appword = New Word.Application
  Set Newword = Appword.Documents.Add(App.Path + "/stencil" + "/stencil.doc") ‘这里是打开模版文档。stencil是模板的意思。可根据自己的需要替换。
  Appword.Visible = False ‘隐藏WORD。导出时不在任务栏出现WORD文档。
  Appword.WindowState = wdWindowStateMinimize
  scan = text2(0).Text '按编号搜索需要导出word的记录,一次只能导出一条记录
  rs.CursorLocation = adUseClient
  ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "/data.mdb;Jet OLEDB:Database Password=harry2000"
  cn.Open ConnectionString
  rs.Open "select * from ADMIN where 编号 = '" & scan & "'", cn, adOpenKeyset, adLockOptimistic‘查找需要导出的记录
  If rs.RecordCount = 0 Then ’如果不存在该记录
  MsgBox "请在左边选择需要导出的记录"
  Appword.Documents.Close
  Appword.Quit
  Exit Sub
  Else ‘如果存在记录则运行以下代码
  With Newword ’设置模版表格和在表格中填入数据库内容。
  .Tables(1).Cell(1, 1).Range.Text = (Format(rs!日期, "yyyy年mm月dd日"))
  .Tables(2).Cell(3, 4).Range.Text = (rs!时间) '可以根据自己的需要设置填写内容。
  End With
  Appword.ChangeFileOpenDirectory (App.path+ "/导出WORD文件夹")
  Appword.ActiveDocument.SaveAs FileName:=(App.path+ "/导出WORD文件夹/" & rs!姓名 & Format(Now, "yyyy-mm-dd") & ".doc"), FileFormat:=wdFormatDocument, LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:=False
  Appword.Documents.Close
  Appword.Quit
  MsgBox "导出成功," & rs!姓名 & Format(Now, "yyyy-mm-dd") & "的资料保存于" & vbCrLf & vbCrLf & App.path + "/导出WORD文件夹"
  End If
  Set Appword = Nothing ‘交还控制权
  Set Newword = Nothing
  Newword.Close
  rs.Close ’关闭数据库

回答3:

到 http://club.excelhome.net/forum-23-1.html 技术论坛发帖吧

回答4:

创建一个word对象,然后对其操作就行了