1
我是VBA的新手 - 完全是外語,盡我所能理解。卡在每個循環 - 無休止地搜索匹配
我想寫一段代碼,這將幫助我在一個工作表中基於另一個工作表中的表格中的單元格的內部顏色格式的顏色代碼項目。我已經在基本級別上實現了它,但當用於顏色編碼的單元格的值無法與Sheet2中的表中的任何值匹配時,它們就已經脫落。理想情況下,我希望在這種情況下執行的操作只是向下移動到單元格1行並繼續循環,但實際發生的是它在Sheet2中的表格中循環尋找匹配。我嘗試了各種Else和ElseIf語句來試圖阻止這一點,但是沒有一個會導致期望的結果。我寫的代碼(得很厲害,我敢肯定)低於:
Sub Colour_Code_Cells()
Dim xlRange As Range
Dim xlCell As Range
Dim xlSheet As Worksheet
Dim formatSheet As Worksheet
Dim formatRange As Range
Dim formatCell As Range
Set xlSheet = ActiveWorkbook.Worksheets("colourcode")
Set xlRange = xlSheet.Range("A1:A10")
Set formatSheet = ActiveWorkbook.Worksheets("Sheet1")
Set formatCell = formatSheet.Range("A2")
formatCell.Activate
Do Until Selection.Value = ""
For Each xlCell In xlRange
If xlCell.Value = ActiveCell.Value Then
ActiveCell.Interior.Color = xlCell.Interior.Color
ActiveCell.Offset(1, 0).Select
End If
Next xlCell
Loop
End Sub
任何建設性的提示,將最感激地接受。你如何告訴它停止查看每個Next xlCell,如果它已經看過一次?
提前感謝
斯科特太感謝你了完美的作品。我可能會花費我早上的時間,確保我完全理解For Each命令中的每條指令實際上正在做什麼 - 很好地瞭解知道它的工作原理,而不是重複試驗和改變:) – NTen
@NTen請通過點擊答案中的複選標記標記爲正確 –