|
楼主 |
发表于 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 |
|