2017-10-10 92 views
-1

嗨我需要檢查拼寫和縮寫列中的所有數據。列拼寫檢查VBA Excel

這裏是我的代碼:

Sub ColorMispelledCells() 
    For Each cl In ActiveSheet.UsedRange 
     If Not Application.CheckSpelling(Word:=cl.Text) Then _ 
      cl.Interior.ColorIndex = 28 
    Next cl 
End Sub 

無論如何,我可以改變這使其成爲基於列的檢查,而不是細胞,而不是hightlight細胞,而是添加註釋到下一列,這個詞是拼寫錯誤或縮寫?

+0

你是什麼觸發直接輸入內容後?或者當按下按鈕(或類似的東西)時 – FunThomas

+0

當按下按鈕時,觸發器 – Gorhell

+0

你是什麼意思「在下一列添加註釋」?在cl.Offset(Columns:= 1)中寫入* something * '?不清楚你在找什麼,順便說一下'If ... Then'語句具有危險的誤導性 - 在'If ... End If'塊中寫多行'If'語句,並且內聯條件一條線上的onals。這裏的行延續和塊縮進是*乞求*後面會引入的錯誤。 –

回答

1

您可以將循環更改爲for循環以遍歷單個列。您將需要該消息應該是什麼做的更多的細節,如果它的拼寫,縮寫等

Dim i as Long, j as Long, LR as Long 
j = 1 'Setting this up for Column A, aka Column 1 
LR = Cells(Rows.Count, j).End(xlUp).Row 'Assumes contiguous column j 
For i = 1 to LR 
    If Application.CheckSpelling(word:=Cells(i,j).Value)=False Then 
     Cells(i,j+1).Value = "SpellCheck Error!" 
    End If 
Next i 
+0

這是我需要的。謝謝! – Gorhell

0

首先,改變你的日常,能夠與任何範圍的作品。

Sub ColorMispelledCells(r As Range) 
    Dim c As Range 
    For Each c In r 
     if VarType(c.value2) = vbString then 
      If Not Application.CheckSpelling(c.Value2) Then 
       c.Interior.ColorIndex = 28 
      Else 
       c.Interior.ColorIndex = 0 
      End If 
     End If 
    Next 
End Sub 

變體,不着色,但在右側單元格中寫入文本 - 但請注意,這將覆蓋該單元格中的任何內容。

c.Offset(0, 1) = "You have misspelled something..." 

然後,增添一分的按鈕 - 這將拼寫檢查中使用的所有細胞(但請注意,這可能需要相當長的一段時間

sub ButtonPressed() 
    ColorMispelledCells(activesheet.usedRange) 
end sub