嗨,我正在尝试按指定的列(而不是整个工作表)运行拼写检查。我想要进行拼写检查的列是“标题”,“原始标题”,“原始标题”和“摘要”。
这是我目前拥有的(正在渲染整个工作表)
Sub HighlightMisspelledWords()
错误恢复下一个
'您可以通过指示左上方和右下方的单元格来指定范围。 '默认范围使用图纸的整个使用区域。 Dim oRange作为Excel.Range 设置oRange = ActiveSheet.UsedRange
Application.ScreenUpdating = True
'您可以选择要对照哪个词典语言进行拼写检查。 '有很多,但最有可能的是以下几种。 'Application.SpellingOptions.DictLang = msoLanguageIDEnglishUS'值1033 Application.SpellingOptions.DictLang = msoLanguageIDEnglishUS
'对于Word高亮显示,您可以选择8种命名颜色: 'vbBlack,vbWhite,vbRed,vbGreen,vbBlue,vbYellow,vbMagenta,vbCyan。 昏暗lWordHighlightColor长 lWordHighlightColor = vbRed
''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''' '上述项目的值应由用户根据需要进行修改。 ' '''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''
出错时转到0
将oCell作为对象 Dim iLastRowProcessed作为整数 iLastRowProcessed = 0
对于oRange中的每个oCell
'第一个拼写检查整个单元格(如果少于256个字符)。 '即使没有拼写错误,也可以捕获某些语法错误。 如果(Len(oCell.Text)<256) bResultCell = Application.CheckSpelling(oCell.Text) 如果结束
将iTrackCharPos设置为整数 iTrackCharPos = 1
'使用空格作为定界符,将单元格中的文本拆分为单词数组。 变体单词变暗 vWords = Split(oCell.Text,Chr(32),-1,vbBinaryCompare) 昏暗的整数
'检查单元格中每个单词的拼写。 对于i = LBound(vWords)到UBound(vWords)
将iWordLen视作整数 iWordLen = Len(vWords(i))
将bResultWord设为布尔值 '请注意,长度超过255个字符的Word将产生错误13。 '任何没有任何嵌入空格的字符串都被视为单词。 bResultWord = Application.CheckSpelling(Word:= vWords(i))
如果(bResultWord = False)然后 bResultCell =假 '仅在单元格中突出显示该拼写错误的单词。 oCell.Characters(iTrackCharPos,iWordLen).Font.Bold = True oCell.Characters(iTrackCharPos,iWordLen).Font.Color = lWordHighlightColor
如果结束
iTrackCharPos = iTrackCharPos + iWordLen + 1
下一个我
下一个oCell
结束子