如何用VB打开word并且创建表格,向表格里填写数据。

要求用VB6.0来实现,像表格填写数据我试验过用录制宏的方法,但是移植到VB里面就不管了,谢谢大家提供源代码,我会追加分数的。
这个方法我用过的呀,通不过,CD是什么意思啊? 我一运行就提示变量没有定义,我已经引用了Microsoft Word 11.0 Object Library.

第1个回答  2009-01-16
我给修改了一下,这个代码我调试通过了:
Option Explicit

Private Function OutWord(ByVal filePath As String) As Boolean
Dim newDoc As Word.Document
Set newDoc = New Word.Document

With newDoc
.Paragraphs(.Paragraphs.Count).Range.Font.Name = "宋体"
.Paragraphs(.Paragraphs.Count).Range.Font.Size = 10.5
.Paragraphs(.Paragraphs.Count).Alignment = wdAlignParagraphRight
.Content.InsertAfter "编号:" & vbCrLf

.Paragraphs(.Paragraphs.Count).Range.Font.Name = "宋体"
.Paragraphs(.Paragraphs.Count).Range.Font.Size = 26
.Paragraphs(.Paragraphs.Count).Range.Font.Bold = True
.Paragraphs(.Paragraphs.Count).Alignment = wdAlignParagraphCenter
.Content.InsertAfter vbCrLf & "XXXXXXXXX报告" & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf

.Paragraphs(.Paragraphs.Count).Range.Font.Name = "宋体"
.Paragraphs(.Paragraphs.Count).Range.Font.Size = 15
.Paragraphs(.Paragraphs.Count).Range.Font.Bold = False
.Paragraphs(.Paragraphs.Count).Alignment = wdAlignParagraphLeft
.Content.InsertAfter "项目名称:" & vbCrLf
.Content.InsertAfter "应急类型:" & vbCrLf
.Content.InsertAfter "预警状态:正常/警界/危机" & vbCrLf

.Paragraphs(.Paragraphs.Count).Alignment = wdAlignParagraphCenter
.Tables.Add Range:=.Range(Start:=.Range.End - 1, End:=.Range.End), NumRows:=1, NumColumns:=3, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitFixed
'With .Tables(0)
'If .Style <> "表 (格子)" Then
'.Style = "表 (格子)"
'End If
'.ApplyStyleHeadingRows = True
'.ApplyStyleLastRow = True
'.ApplyStyleFirstColumn = True
'.ApplyStyleLastColumn = True
'.Columns.Width = 50
'.Rows.Height = 20
'End With

.Paragraphs(.Paragraphs.Count).Range.Font.Name = "宋体"
.Paragraphs(.Paragraphs.Count).Range.Font.Size = 15
.Paragraphs(.Paragraphs.Count).Range.Font.Bold = False
.Paragraphs(.Paragraphs.Count).Alignment = wdAlignParagraphLeft
.Content.InsertAfter "委 托 人:" & vbCrLf
.Content.InsertAfter "预 警 机 构:" & vbCrLf
.Content.InsertAfter "报告负责人:" & vbCrLf
.Content.InsertAfter "时 间:" & vbCrLf

.Paragraphs(.Paragraphs.Count).Alignment = wdAlignParagraphLeft
.Tables.Add Range:=.Range(Start:=.Range.End - 1, End:=.Range.End), NumRows:=8, NumColumns:=2, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitFixed
With .Tables(2)
'If .Style <> "表 (格子)" Then
'.Style = "表 (格子)"
'End If
'.ApplyStyleHeadingRows = True
'.ApplyStyleLastRow = True
'.ApplyStyleFirstColumn = True
'.ApplyStyleLastColumn = True
.Cell(2, 1).Range.Text = "项目名称"
.Range.Cells(3).Row.Cells.Merge
.Range.Cells(3).Range.Font.Size = 15
.Range.Cells(3).Range.Text = "信息来源/文献检索范围:" & vbCrLf & vbCrLf & vbCrLf
.Range.Cells(4).Row.Cells.Merge
.Range.Cells(4).Range.Text = "情况描述/检索结果:" & vbCrLf & vbCrLf & vbCrLf
.Range.Cells(5).Row.Cells.Merge
.Range.Cells(5).Range.Text = "影响分析:" & vbCrLf & vbCrLf & vbCrLf & vbCrLf
.Range.Cells(6).Row.Cells.Merge
.Range.Cells(6).Range.Text = "建议:" & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf
.Range.Cells(7).Row.Cells.Merge
.Range.Cells(7).Range.Text = "专家组成员:" & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf
.Range.Cells(8).Row.Cells.Merge
.Range.Cells(8).Range.Text = "附件目录:" & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf
.Range.Cells(9).Row.Cells.Merge
.Range.Cells(9).Range.Text = "报告负责人:" & vbCrLf & vbCrLf & vbCrLf & vbCrLf & " 年 月 日"
End With

End With

newDoc.SaveAs filePath
newDoc.Close
End Function

Private Sub Form_Load()
Dim filename As String
filename = App.Path & "\aa.doc"
OutWord filename
MsgBox filename
MsgBox "OK"
End Sub本回答被提问者采纳
第2个回答  2009-01-16
'在你的程序目录 有一个abc.doc 且里面有一个表
Private Sub Form_Load()
Dim doc1 As Document '定义用于接收文档的变量

'延迟错误处理
On Error Resume Next
Dim wdApp As Word.Application
'启动Word,可能需要稍微等待...
Set wdApp = New Application
wdApp.Visible = True '应用程序可见
Set doc1 = wdApp.Documents.Open(VB.App.Path & "\abc.doc") '打开abc.doc文件

If doc1 Is Nothing Then
MsgBox "找不到abc.doc"
End If

If doc1.Tables.count <> 0 Then
doc1.Tables(1).Columns(1).Cells(1).Range.Text = "abc"
Else
MsgBox "表格不存在!"
End If

End Sub

如何用VB打开word并且创建表格,向表格里填写数据。
Private Function OutWord(ByVal filePath As String) As Boolean Dim newDoc As Word.Document Set newDoc = New Word.Document With newDoc .Paragraphs(.Paragraphs.Count).Range.Font.Name = "宋体".Paragraphs(.Paragraphs.Count).Range.Font.Size = 10.5 .Paragraphs(.Paragraphs.Count).Alignm...

VB.NET Word创建表格并录入文字
‘首先,创建一个VB.NET项目,再点击菜单”项目“-”添加引用“,在”Com“-”类型库“里,选择Microsoft.Word 14.0 Object Library(对应Office版本为2010),将以下代码复制粘贴到Form1窗体替换原代码。’PS:以下代码仅创建表格,将第行2至4列合并,添加1个文字,其他的你自己分析。Imports Microsoft...

wps中word的vb怎么用
您好,方法 打开表格,点击“开发工具”,点击“VB编辑器”。右键单击WPS表格对象,选择“插入”,点击“模块”。根据需要编辑代码,完成后退出到表格页面。输入“=求最大值(3,5)”,点击回车即可得到结果。

如何在EXECL中用VBa打开Word,并输出数据到WORD中,保存,关闭
1、首先打开EXECL表格,然后在工作表中,点击菜单栏【开发工具】。2、在其工具栏内,点击【visual basic】。3、会进入VBA编辑界面!点击菜单栏【插入】,在其下拉菜单中,选择【模块】。4、会弹出模块编辑窗口,在模块窗口输入以下代码。5、然后点按键盘上的F8,一步步运行编写的代码。6、最后看到“销...

怎么用VB打开word\/EXCEL
Add方法 创建新工作表并将其添加到工作簿中。 Select方法 选择工作表。 Copy方法 复制工作表。 Move方法 将指定工作表移到工作簿的另一位置。 Delete方法 删除指定工作表。 PrintOut方法 打印工作表。 示例3:将C盘工作簿中的工作表复制到A盘工作簿中:Dim VBExcel As Excel.ApplicationSet VBExcel=CreateObject("...

VB如何在WORD.DOT表格插入相关数据
'创建word应用程序,这一句话打开word2000 Set wdapp = CreateObject("Word.Application")'在word中添加一个新文档 Set wddoc = wdapp.Documents.Add With wdapp .Visible = True .Activate '在word中增加一个表格 .Caption = "送检表"Set atable = .ActiveDocument.Tables.Add(.Selection.Range, ...

在excel里通过vba打开word文件并打印?
WordObject.Visible = 0 '后台运行Word对象,只在任务管理器中存在WinWord.exe进程,但在任务栏上看不到word;如果为1或者True则可以看到word运行界面 WordObject.Documents.Add DocumentType:=wdNewBlankDocument '新建一word文档 '以下为获取Excel表格中的内容,准备把数据传送给Word,可以根据自己的实际...

如何用VB打开一WORD文档?
用左键点击所要打开的word文件,然后点击右键,会出现一个菜单,然后选择复制。这样就能把那个word的内容复制出来了。

用VB 往word里写数据???
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文件...

如何用VB在WORD中添加表格
If .Style <> "网格型" Then .Style = "网格型"End If .ApplyStyleHeadingRows = True .ApplyStyleLastRow = False .ApplyStyleFirstColumn = True .ApplyStyleLastColumn = False .ApplyStyleRowBands = True .ApplyStyleColumnBands = False End With 补充一下,可以用录制宏的方法查看代码学习...

相似回答