使用VB6构建Microsoft Word报告?

时间:2016-02-02 19:35:07

标签: ms-word vb6

我正在使用Microsoft Word中的VB6构建报告。当我使用现有的报告时,我遇到了一些似乎不合适的问题。我使用现有的报告作为参考并建立自己的报告。我遇到的问题是标题内的文字。我包括一张图片。另外,当我做一个休息页面并尝试从第1行开始时,范围1,1 - 由于一些奇怪的原因,底部边框会丢失。这是我的代码......

这是我将值传递给函数下面的函数的方法:

w_Wrd.Selection.InsertBreak wdPageBreak -- page break here, header appears on new page with no bottom border
w_Wrd.Selection.Goto wdGoToBookmark, , , "\EndOfDoc"
w_TblRow = 1
Set w_Rng = w_Wrd.Selection.Range
Call TableStyle_001_HeaderLine(w_TblRow, "Client Information")

Private Sub TableStyle_001_HeaderLine(row As Integer, Col1Txt As String)
w_Doc.Tables.Add w_Rng, 1, 1

w_Wrd.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
With w_Wrd.Selection.Tables(w_DocTblIdx).Rows(row)
    With .Shading
        .Texture = wdTextureNone
        .ForegroundPatternColor = wdColorAutomatic
        .BackgroundPatternColor = wdColorGray15
    End With
    With .Borders(wdBorderLeft)
        .LineStyle = wdLineStyleSingle
        .LineWidth = wdLineWidth050pt
        .Color = wdColorAutomatic
    End With
    With .Borders(wdBorderRight)
        .LineStyle = wdLineStyleSingle
        .LineWidth = wdLineWidth050pt
        .Color = wdColorAutomatic
    End With
    With .Borders(wdBorderTop)
        .LineStyle = wdLineStyleSingle
        .LineWidth = wdLineWidth050pt
        .Color = wdColorAutomatic
    End With
    With .Borders(wdBorderBottom)
        .LineStyle = wdLineStyleSingle
        .LineWidth = wdLineWidth050pt
        .Color = wdColorAutomatic
   End With

'WRITE THE DATA 'comment
    .Cells(1).Select
    w_Wrd.Selection.Font.Bold = True
    w_Wrd.Selection.TypeText Col1Txt
End With

End Sub

我的标题图片: enter image description here

从图中可以看出,左边,上边和右边框看起来很好,但是底边框丢失了。请帮助!

2 个答案:

答案 0 :(得分:0)

表格单元格中文本的对齐方式由段落格式设置。它还可以帮助您学习使用Word的对象,而不是使用Selection。

'WRITE THE DATA 'comment
Dim rngCell as Word.Range
Set rngCell = .Cells(1).Range
rngCell.Font.Bold = True
rngCell.Text = Col1Txt
rngCell.Paragraphs(1).Alignment  = wdAlignParagraphCenter

可以帮助您解决困难的事情是使用Word的宏记录器。记录执行操作,例如在单元格中居中文本,然后查看VBA代码。通常你可以把它当作#34;和#34;进入VB6,遵循您已有的代码模式。虽然淘汰"选择"通常是一个非常好的主意。和#34; ActiveDocument"尽可能用更准确的物体替换它们。

答案 1 :(得分:0)

很难过分强调在实际程序中依赖Word Automation的不好主意。

Considerations for server-side Automation of Office涉及许多问题,但是从服务器端代码的角度来看。但是,大多数注意事项都适用于任何程序,以这种方式外部操作Office。

寻找其他选择。