【问题标题】:Inserted Word Table not showing Borders插入的字表不显示边框
【发布时间】:2020-12-19 04:12:15
【问题描述】:

我可以插入表格,但表格边框不可见。您可以看到创建的文档。为了允许其他人运行此脚本,我必须使用后期绑定,我怀疑这可能是原因。

我的代码在这里:

Sub Button1_Click()
   Dim objWord As Object
   Dim objDoc
   Dim objSelection
   
   Dim i As Long
   
   Set objWord = CreateObject("Word.Application")

   Set objDoc = objWord.Documents.Add

   objWord.Visible = True

   Set objSelection = objWord.Selection

   objSelection.TypeText ("Insert table after this text")
   
   Set myRange = objDoc.Content
   myRange.Collapse Direction:=wdCollapseEnd
   objDoc.Tables.Add Range:=myRange, NumRows:=3, NumColumns:=4
   
   Set myTable = objDoc.Tables(1)
   With myTable.Borders
     .Enable = True
     .InsideLineStyle = wdLineStyleSingle
     .OutsideLineStyle = wdLineStyleDouble
     .InsideColor = wdColorBlack
     .OutsideColor = wdColorBlack
   End With
   

End Sub

【问题讨论】:

  • 这确实有效并显示了我的边框,尽管您在这里有未声明的变量和错字:.InsideColor = wdColordBlack
  • @RicardoDiaz 谢谢,我修正了错字,但是我仍然遇到创建表格但没有可见边框的问题。你能详细说明“这确实有效”
  • 当然,我运行了修复错字的脚本,它确实显示了边框。我在 Windows 10 机器上使用 Excel 和 word 365
  • @RicardoDiaz 嗯。您是否介意发布您的固定代码,因为我的仍然无法正常工作。我正在使用相同版本的 excel 和 word 以及在 Windows 10 上。

标签: excel vba ms-word


【解决方案1】:

这是您修改后的代码,在我的测试中,当我从 Excel 运行它时,它可以正常工作。

Sub Button1_Click()
    Dim objWord As Object
    Dim objDoc As Object
    Dim objSelection As Object
    Dim i As Long
    Dim myRange As Object
    Dim myTable As Object
    
    On Error Resume Next
    Set objWord = GetObject(, "Word.Application")
    If Err.Number <> 0 Then
        Err.Clear
        Set objWord = CreateObject("Word.Application")
    End If
    objWord.Visible = True
    
    On Error GoTo 0
    Set objDoc = objWord.Documents.Add
    
    Set objSelection = objWord.Selection
    
    objSelection.TypeText ("Insert table after this text")
    
    Set myRange = objDoc.Content
    myRange.Collapse Direction:=wdCollapseEnd
    Set myTable = objDoc.Tables.Add(Range:=myRange, NumRows:=3, NumColumns:=4)
    
    With myTable.Borders
      .Enable = True
      .InsideLineStyle = 1
      .OutsideLineStyle = 7
      .InsideColor = 0
      .OutsideColor = 0
    End With
   
End Sub

表格边框不显示的问题是,在使用后期绑定时,您必须使用数值进行设置。

我还进行了一些其他调整,它们对您遇到的问题没有影响,但它们是更好的做法。所有对象都已声明,我添加了一个测试以查看 Word 应用程序是否已在运行。在 Office 应用程序的某些版本中,当您执行 CreateObject 并且应用程序已经存在时,应用程序的多个实例可能会加载到内存中。

【讨论】:

  • 感谢您的代码和解决方案。我应该注意,当我将 .OutsideLineWidth = wdLineWidth150pt 添加到我的 .Border 块时,我能够让我的原始代码工作。但是你的解决方案更强大,所以我会用它作为答案。再次感谢您的帮助
猜你喜欢
  • 2015-09-11
  • 2011-11-02
  • 2015-07-06
  • 1970-01-01
  • 2014-01-15
  • 2021-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多