gpt4 book ai didi

vba - 文字消失

转载 作者:行者123 更新时间:2023-12-01 19:51:51 24 4
gpt4 key购买 nike

我目前正在 Word 2010 中设置一些 MS Word 模板,并遇到了一个问题,文本在段落末尾突然消失。

该问题仅发生在某些特定场景中,但据我经验,可以通过多种不同方式重新创建该问题。然而,我还无法确定发生这种情况的确切原因。因此,我想找到导致该问题发生的具体原因,以避免它。

看来,包装表的存在、页眉中的内容以及一定长度的行的组合可能会引发该问题。

要重新创建出现此问题的文档,请按照以下过程操作:

  1. 在 Word 2010 中打开一个新文档。
  2. 将以下代码复制到 VBA 编辑器中的新模块中。
  3. 运行 A_ReplicateScenario 宏以在文档中插入示例内容。
  4. 将光标置于第 3 行的末尾(靠近页边距的行)。
  5. 在点后输入一个新句子,以空格开头。

当达到边距时,您输入的文本将会消失。

如果例如从原始文本(即从行的开头)删除字符或进行格式更改(例如清除格式),则将显示文本。 Word 中的“显示全部”设置有时也可以显示文本,但仅在激活“显示全部”时才会显示文本。有时Word会显示无法选择的“重影”双线。

可以在此处查看重复问题的短视频:https://youtu.be/Bqp9STDRkXc

Sub A_ReplicateScenario()

Call SetUpNormalStyle
Call InsertBodyTextLines
Call InsertHeaderTextLines
Call InsertWrappedTables
Call SetUpMargins
Call InsertExampleBodyText

End Sub

Sub SetUpNormalStyle()

With ActiveDocument.Styles("Normal").Font
.Name = "Arial"
.Size = 10
End With
With ActiveDocument.Styles("Normal").ParagraphFormat
.SpaceAfter = 0
.LineSpacingRule = wdLineSpaceAtLeast
.LineSpacing = 12
End With

End Sub

Sub InsertBodyTextLines()

For i = 1 To 4
Selection.TypeParagraph
Next

End Sub

Sub InsertHeaderTextLines()

If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If

ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader

For i = 1 To 26
Selection.TypeParagraph
Next

ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument

End Sub

Sub InsertWrappedTables()

Selection.HomeKey Unit:=wdStory

ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=1, NumColumns:=1, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitFixed
With Selection.Tables(1).Rows
.WrapAroundText = True
.HorizontalPosition = CentimetersToPoints(2)
.RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
.VerticalPosition = CentimetersToPoints(4.5)
.RelativeVerticalPosition = wdRelativeVerticalPositionPage
End With
Selection.Tables(1).Columns(1).PreferredWidthType = wdPreferredWidthPoints
Selection.Tables(1).Columns(1).PreferredWidth = CentimetersToPoints(11)

Selection.MoveDown Unit:=wdLine, Count:=1

ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=1, NumColumns:=1, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitFixed
With Selection.Tables(1).Rows
.WrapAroundText = True
.HorizontalPosition = CentimetersToPoints(10)
.RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
.VerticalPosition = CentimetersToPoints(8)
.RelativeVerticalPosition = wdRelativeVerticalPositionPage
End With
Selection.Tables(1).Columns(1).PreferredWidthType = wdPreferredWidthPoints
Selection.Tables(1).Columns(1).PreferredWidth = CentimetersToPoints(9)

End Sub

Sub SetUpMargins()

With ActiveDocument.PageSetup
.TopMargin = CentimetersToPoints(3.8)
.BottomMargin = CentimetersToPoints(2.8)
.LeftMargin = CentimetersToPoints(2.3)
.RightMargin = CentimetersToPoints(1.5)
End With

End Sub

Sub InsertExampleBodyText()

With Selection
.HomeKey Unit:=wdStory
.MoveDown Unit:=wdLine, Count:=3

.TypeText Text:="Ouwouwouwoiwoiuwoiuwoiuwoiuwoiuwoiuwoiw oiwu oiwu owiu woiu woiuw oiwu owiu owiu ww."
.TypeParagraph
.TypeText Text:="Woiuwoiuwoiuw."
End With

End Sub

最佳答案

该问题与表格被格式化为围绕文本 float 有关。 Word 长期以来一直存在 float 对象问题。尽管多年来 Word 已经有了很大改进,但您可能仍然会遇到问题,特别是在使用 float 表格时。

如果您更改第二个表格的格式(通过表格属性)并将文本换行设置为,则错误就会消失 (YMMV)。

我的建议是尽可能避免 float 表。

关于vba - 文字消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34677337/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com