【问题标题】:Turn a list of words into cells in a Word table with VBA使用 VBA 将单词列表转换为 Word 表格中的单元格
【发布时间】:2020-10-28 22:51:34
【问题描述】:

我制作了一个脚本,将我所有拼错的单词粘贴到一个新文档中,所以现在我有一个文档文件,其中每个单词都是拼写错误的单词。该文档目前有 167 个单词。我还制作了一个可以制作表格的脚本。我现在想将这 167 个单词中的每一个放入自己的单元格中,结果是一个包含 167 个单元格的表格,每个单元格包含一个单词。 我们的目标是自动执行此操作,以便将给定文档中的任意数量的单词转换为表格。

我该怎么做呢?我知道答案与循环有关,这就是为什么这是我得到的最远的。

 Sub TurnInToTable()
 Dim actdoc As Document
 Dim newtbl As Table
 Dim aword As Range 
 Dim x As Integer 
 Set actdoc = ActiveDocument
    x = actdoc.Words.Count
 Set myrange = actdoc.Range(0, 0)
 Set newtbl = actdoc.Tables.Add(myrange, x, 2, wdWord9TableBehavior)
 For Each aword in actdoc.Words
 ?????
 Next aword
 End Sub

计划最终有一个包含两列的表格:一列包含拼写错误的单词,另一列拼写正确,这样我就可以轻松地将所有对同时添加到自动拼写检查字典中。

【问题讨论】:

  • 获取拼写错误单词的范围,然后将文本转换为表格。

标签: vba ms-word


【解决方案1】:

假设您已将每个单词粘贴到新段落中,则无需遍历任何内容。您只需将段落转换为表格即可:

Sub MispeltWordsTable()
   With ActiveDocument.Content
      With .ConvertToTable(Separator:=wdSeparateByParagraphs, NumColumns:=1, _
         NumRows:=.Paragraphs.Count, AutoFitBehavior:=wdAutoFitFixed)
         .style = "Table Grid"
         .ApplyStyleHeadingRows = True
         .ApplyStyleLastRow = False
         .ApplyStyleFirstColumn = True
         .ApplyStyleLastColumn = False
         .Columns.add
         .PreferredWidthType = wdPreferredWidthPercent
         .PreferredWidth = 100
      End With
   End With
End Sub

【讨论】:

  • 我没有把每个单词都放在一个新的段落中。每个拼写错误的单词都在文档页面上,就像普通文档一样。一个接着一个字。
  • @CountSpergulia - 然后只需先进行查找和替换以将所有空格替换为段落,然后编辑构建文档的例程,以便将每个单词放入一个新段落中。
  • @CountSpergulia - 当您设计编码解决方案时,您需要牢记您的最终目标是什么。在这种情况下,这意味着要么构建一个易于转换为表格的文档,要么在为要添加的每个单词添加新行时构建表格。当您最终希望将单词放在表格中时,只是将它们转储到文档中是不合逻辑的。
  • 这很有意义。非常感谢您的建议。 3 天前,我刚开始第一次编码。我会给你一个赞成票,但我没有足够的声望这样做!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多