2013-06-18 70 views
0
Private Sub Worksheet_Change(ByVal Target As Range) 

Dim c As Range 

For Each c In Target.Cells 
    **If c.Value <> Empty Or c.Value = 0 Then 
    End If** 
    If c.Column = 11 Then 
    c.Offset(0, -1).Value = Now() 

End If 
Next c 

End Sub 

我上面的代碼工作很好,除了我試圖添加粗體代碼忽略任何空白單元格(也可能是忽略了0值的選項細胞,但不是必需的)。變化由VAL目標的範圍忽略空白和0值單元格

感謝

+0

'如果len(c.Value) = 0或c.Value = 0然後'不確定你想要檢查什麼...... –

+0

@tim我試圖忽略空白單元格或0值單元格。因爲另一個代碼的一部分正在刪除整行,並且代碼執行時它會一直循環遍歷每個單元格。 – Elliot

回答

0
If c.Value != "" 

應該工作的空白單元格。

至少它的工作here

至於忽略值0,不能你只需要改變的,如果子句if c.Value > 0

0

你似乎有兩種不同的觀點,你在同一個測試中將<> Empty=0合起來。

無論如何,這使得改變,如果有什麼東西在細胞之外0,並作爲獎金,清除更改如果爲空或0

Private Sub Worksheet_Change(ByVal Target As Range) 
Dim c As Range 

Application.EnableEvents = False 
For Each c In Target.Cells 
    If c.Column = 11 Then 
     If c.Value = "" Or c.Value = 0 Then 
      c.Offset(0, -1).ClearContents 
     Else 
      c.Offset(0, -1).Value = Now() 
     End If 
    End If 
Next c 
Application.EnableEvents = True 
End Sub 
+0

的答覆嘿感謝,由於某種原因,你的代碼工作在我的第一次迭代,但隨後卡和在「Worksheet_change」子不斷循環和不回我的模塊,我運行我的代碼的其他部分。 – Elliot

+0

D'oh,我忘記關閉EnableEvents,這意味着每次更改都會生成另一個,然後打開,然後打開。 –

+0

謝謝,但它仍然有同樣的問題,它卡住了worksheet_change模塊 – Elliot