用VBA 把excel 转成 word (格式见图片),我写了代码,但是运行出错424,请大神指教,不胜感激!

excel格式

word格式

VBA代码
Sub ExcelToWord() ' 利用Word程序创建文本文件
Dim WordApp As Object
Dim Records As Integer, i As Integer
Dim Region As String, SalesAmt As String, SalesNum As String

Set WordApp = CreateObject("Word.Application") '创建word对象
Records = Application.CountA(Sheets("sheet1").Range("A:A")) 'A列数据个数

WordApp.Documents.Add '新建文档

For i = 1 To Records
Region = Data.Cells(i, 1).Value '将第一列某行的值赋值给变量
SalesNum = Data.Cells(i, 2).Value '获取该行B列数据
SalesAmt = Data.Cells(i, 3).Value '获取该行C列数据

With WordApp
.Font.Size = 14 '设置字体字号
.Font.Bold = True '字体粗
.ParagraphFormat.Alignment = 0 '设置对齐
.TypeText Text:=":" & Region & SalesNum
.TypeParagraph

.Font.Size = 12 '设置字体
.ParagraphFormat.Alignment = 0 '设置对齐
.Font.Bold = False '字体不加粗
.TypeText Text:=":" & vbTab & SalesAmt
.TypeParagraph '回车
.TypeParagraph '回车

End With
Next i

WordApp.ActiveDocument.SaveAs Filename:="LELE" '保存文件
WordApp.Quit '退出程序
Set WordApp = Nothing '清空

End Sub

1.
Region = Data.Cells(i, 1).Value '将第一列某行的值赋值给变量
SalesNum = Data.Cells(i, 2).Value '获取该行B列数据
SalesAmt = Data.Cells(i, 3).Value '获取该行C列数据
---------------
其中的data是什麽东西??
如果你的代码是写在要转换的excel中,并且数据在该工作簿的data工作表的,那麼把data改为sheets(“data”)试试

2.With WordApp 改为 With WordApp.Selection

祝你成功!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-02-12
1、获取A列行数,一般用:
Records = Sheets("sheet1").[A65536].end(xlup).row

2、程序中未见到对Data的定义,大概要改成sheets("sheet1")
第2个回答  2014-02-12
Region = Data.Cells(i, 1).Value '将第一列某行的值赋值给变量
SalesNum = Data.Cells(i, 2).Value '获取该行B列数据
SalesAmt = Data.Cells(i, 3).Value '获取该行C列数据
Data是未定义变量?追问

确实有问题 ,可是应该怎么改呢?谢谢!

追答

1、data去掉,意思就是当前表表格
2、With WordApp对象是word程序本身,后面的属性不能赋值,应是With WordApp.Selection

运行应该没问题了

本回答被提问者采纳
相似回答