2012-10-31 54 views
0

我寫了一個簡單的VBA代碼來檢查單元格的值是否定的,如果是負值,則將其突出顯示爲紅色。出於某種原因,我不斷遇到「運行時間不匹配」。我的代碼是vba檢查負值

For x = 2 To 100 

Set val3 = Worksheets("Summary").Cells(x, 9) 
If val3.Value < 0 Then 
Worksheets("Summary").Cells(x, 9).FontColorIndex = 3 

End If 
Next x 

第9列(我檢查的列)填充了美元值。預先感謝您的幫助。上述

+2

您忘記了Font和ColorIndex之間的點嗎? – Trace

+0

也可以只是'val3.Font.ColorIndex = 3'而不是讓它重新查找循環中的同一個單元格。 –

+0

爲什麼不使用'Conditional Formatting'而不是VBA? –

回答

5

在代碼中,你只是缺少一個點。

FontColorIndex = 3

應該是:

Font.ColorIndex =您的文章,我需要3

0
Public Sub test() 
    For x = 2 To 100 
     Set val3 = Worksheets("Sheet1").Cells(x, 9) 
     If val3.Value < 0 Then 
     Worksheets("Sheet1").Cells(x, 9).Font.Color = RGB(99, 179, 73) 
     End If 
    Next x 
End Sub 

代碼的工作在2007年的Excel

0

感謝後更改到零的負數某個過程 - 但我想在使用它們之前檢查它們,所以更改字體顏色非常有用,所以此代碼適用於整個工作表範圍,直到(245,50)

Sub negnumbers() 
    For x = 1 To 245 
     For y = 1 To 50 
     Set val3 = Worksheets("target sheet").Cells(x, y) 
     If val3.Value < 0 Then 
     Worksheets("target sheet").Cells(x, y).Font.ColorIndex = 3 
     Worksheets("target sheet").Cells(x, y) = 0 
     End If 
     Next y 
    Next x 
End Sub