[英]Change the color of the cell to red if the value in the Database is empty
[英]Spell Check within a cell and change color of misspelled words to red
我正在进行自动化,我需要拼写检查单元格中的一个段落并突出显示红色的错误单词,并且我需要在具有动态范围的列中执行此拼写检查。
我正在使用以下代码
Sub spellcheck()
Dim intOffsetCol As Integer
Dim intChrCnt As Integer
Dim varTempString As Variant
intOffsetCol = 1
For intChrCnt = 1 To Trim(Len(ActiveCell.Value)) Step 1 'Left to right
'A space character is represented by an ASCII code of 32.
If Asc(Mid(ActiveCell.Value, intChrCnt, 1)) <> 32 Then
varTempString = varTempString & Mid(ActiveCell.Value, intChrCnt, 1)
Else
If Not Application.CheckSpelling(Word:=varTempString) Then
varTempString.Interior.ColorIndex = 52
varTempString = ""
intOffsetCol = intOffsetCol + 1
End If
End If
Next intChrCnt
If varTempString <> "" Then
If Not Application.CheckSpelling(Word:=varTempString) Then varTempString.Interior.ColorIndex = vbRed
End If
End Sub
我在varTempString.Interior.ColorIndex = 52
上得到“运行时错误424”
为什么我在该行上收到错误?
varTempString
被用作String
变量,您的代码正在尝试更改单元格内部,这是不可能的。
突出显示特定文本的解决方案是:
Sub SpellCheckUpdate()
Dim cel As Range, CellLen As Long, CurChr As Long, TheString As String
For Each cel In Selection
For CurChr = 1 To Len(cel.Value)
If Asc(Mid(cel.Value, CurChr, 1)) = 32 Then
If InStr(CurChr + 1, cel.Value, " ") = 0 Then
TheString = Mid(cel.Value, CurChr + 1, Len(cel.Value) - CurChr)
Else
TheString = Mid(cel.Value, CurChr + 1, InStr(CurChr + 1, cel.Value, " ") - CurChr)
End If
If Not Application.CheckSpelling(Word:=TheString) Then
cel.Characters(CurChr + 1, Len(TheString)).Font.Color = RGB(255, 0, 0)
Else
cel.Characters(CurChr + 1, Len(TheString)).Font.Color = RGB(0, 0, 0)
End If
TheString = ""
End If
Next CurChr
Next cel
End Sub
这是一个更简单的代码,用于突出显示带有拼写错误单词的FULL单元格:
Sub ColorMispelledCells()
For Each cl In ActiveSheet.UsedRange
If Not Application.CheckSpelling(Word:=cl.Text) Then _
cl.Interior.ColorIndex = 28
Next cl
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.