【问题标题】:Word Macro to Count Words in Quotation Marks单词宏来计算引号中的单词
【发布时间】:2017-10-13 03:18:35
【问题描述】:

我正在为大学写论文,我不允许将引号中使用的单词包含在我的总字数中。由于 Word 没有执行此操作的功能,我希望有人能够通过创建宏来帮助我。我以前使用过宏,但是对于像这样复杂的事情(如果它甚至那么复杂),我几乎没有经验。

我已经有一些类似的东西可以处理整个文档中的引用,因此拥有这两者将是一个很大的帮助。我将在下面复制此代码,以便您大致了解我需要什么,除了引号而不是引文。

所以我想知道是否有人能够生成一个宏来计算整个文档中引号中使用的单词数?

Sub CitationWordCount()

Dim Fld As Field, l As Long, StrTmp As String
For Each Fld In ActiveDocument.Fields
  With Fld
    If .Type = wdFieldCitation Then
      StrTmp = .Result
      l = l + UBound(Split(StrTmp, " ")) + UBound(Split(StrTmp, "-")) + 1
      StrTmp = .Code.Text
      l = l + Len(StrTmp) - Len(Replace(StrTmp, "\n", "\"))
    End If
  End With
Next
MsgBox "There are " & l & " words in citations in this document.", , "Citation Word Count"
End Sub

【问题讨论】:

  • 您用于引用的代码在哪里?
  • 抱歉,现在添加了引用编码!
  • "如果有人能够产生一个宏 [...]" - 这绝对不是这个网站的目的。请使用tour 并阅读How to Ask,以及Scott 链接到的帖子链接。 Stack Overflow 不是代码编写服务。 “我有执行 X 的代码,我需要执行 Y 的代码”不是询问特定编程问题并显示解决手头问题的努力(即 Y,而不是 X)的问题。研究一下正则表达式如何帮助您从输入中提取匹配的引用子字符串。
  • 再次阅读所有提供的链接。这不是本网站上的有效问题 - 仅供参考,本网站有一个自动系统,如果您一直问此类问题,提问-禁止您,我只是想帮助您不是 让自己被禁止。您需要解决的问题是在输入字符串中定位匹配的引号,而这个问题表明解决那个问题的研究工作为零。哦,顺便说一句,我的回答是“是的,我可以写,不,我不是在这个网站上免费为你写的,因为这不是这个网站的用途”。明白了吗?

标签: vba ms-word word-count


【解决方案1】:

Paul Edstein(macropod)几个月前在http://www.msofficeforums.com/word-vba/33866-count-words-between-quotation-marks.htmlhttp://www.msofficeforums.com/word-vba/33866-count-words-between-quotation-marks.html上写了一个解决这个问题的方法

Sub Demo()
Application.ScreenUpdating = False
Dim i As Long, j As Long
With ActiveDocument
  j = .ComputeStatistics(wdStatisticWords)
  With .Range
    With .Find
      .ClearFormatting
      .Replacement.ClearFormatting
      .Text = "[“" & Chr(34) & "]*[" & Chr(34) & "”]"
      .Replacement.Text = ""
      .Forward = True
      .Wrap = wdFindStop
      .Format = False
      .MatchWildcards = True
      .Execute
    End With
    Do While .Find.Found
      i = i + .ComputeStatistics(wdStatisticWords)
      .Collapse wdCollapseEnd
      .Find.Execute
    Loop
    MsgBox "This document contains " & j & " words ," & vbCr & _
      "of which " & i & " (" & Format(i * 100 / j, "0.00") & _
      "%) are in quotes."
  End With
End With
Application.ScreenUpdating = True
End Sub

这将为您提供总字数和引号中的总字数。要获得总字数,只需从总字数中减去引号中的字词即可。

【讨论】:

  • 谢谢,我看的时候什么也找不到。显然看起来不够努力
  • @Dom.Ibbz 对于任何与 Word VBA 相关的内容,总是,总是去查看 ms office 论坛 - 那里有一些真正的 Word MVP,他们为 Word 编写了几乎所有的东西(他们'如果你给他们时间,也非常愿意为你编写免费代码)。
  • 感谢您的帮助,我以后一定会去那里检查的!
猜你喜欢
  • 2015-05-04
  • 2019-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-06
  • 1970-01-01
  • 1970-01-01
  • 2015-06-14
相关资源
最近更新 更多