2017-03-13 9 views
1

私は、左側の隣接セルが変更された時刻を記録したいセルがあります。私はNOW()関数でそれを行います。ただし、問題は、ブックが再計算されるたびに時間が更新されることです。だから私は、この非常にセルが自動更新されないようにする独創的な方法があるのか​​どうか疑問に思っています。自動更新のNOW()機能を停止

細胞内の私の現在の式:

= IF(ISBLANK(H11)、 ""、IF(H11 = "興味" NOW()、IF(H11 = "NOW、" 興味なし() 、「」)))

私は個人的にこれが出ている:このコードで

Private Sub Worksheet_Change(ByVal Target As Range) 
Dim Destination As Range 
    If Not Intersect(Target, Range("H:H")) Is Nothing Then 
     Target.Offset(0, 1).Value = Now 
    End If 
End Sub 

私の問題は、それが細胞内の任意のデータを探しているということです。私は、「興味がある」か「興味がない」のいずれかが含まれている時間をセルに記録したいだけです。現在見ているセルには、「進行中」が含まれています。私はこれらの基準を取り入れるために私のコードで遊んでみましたが、私はエラーで打撃を受けています。私がこれを解決するために何ができるかについてのアドバイスはありますか?前もって感謝します。

+0

として使う簡単なUDFですIf StrComp(.Cells(1,1)、 "interested")= 0 Then ' –

+0

''興味があり、target.offset(0,1).value = ""のようなtarget.valueならば..... 'あなたの公式を読んでそれをコードしてください、あなたの公式は私達にSEARCH機能のエラートラップは、コード候補と一致するようにしてください。 'IF(ISERR(SEARCH(" interested "、H11))、" "、NOW())' –

答えて

1

代わりに次のコードを試してみてください。

Private Sub Worksheet_Change(ByVal Target As Range) 
Dim Destination As Range 
    If Not Intersect(Target, Range("H:H")) Is Nothing Then 
     If LCase(Trim(Target.Value2)) = "not interested" Or LCase(Trim(Target.Value)) = "interested" Then 
      Application.EnableEvents = False 
      Target.Offset(0, 1).Value = Now 
      Application.EnableEvents = True 
     End If 
    End If 
End Sub 

enter image description here

+0

あなたのお返事ありがとうございます。残念ながら、あなたのコードを試してみると何も表示されません。興味を持っているセルに変更しますが、隣接セルに時間が表示されません。 –

+1

'option compare text'を使用すると、lcaseが不要になります。 –

+0

コードは正常に動作します(スクリーンキャストを使用して更新されたソリューションに表示されているように)ので、あなたのシート上で現在イベントが有効になっているかどうかをチェックしたい場合や、 'interested'と入力したときにスペルミスがある場合にチェックします。 – Ralph

0

別のアプローチは、 `あなたはあなたが使用して確認することができます= TimeChanged(H11)

Option Explicit 
Option Compare Text 
Public Function TimeChanged(theCell As Variant) 
    If TypeOf theCell Is Range Then theCell = theCell.Value2 
    If theCell = "Interested" Or theCell = "Not Interested" Then 
     TimeChanged = Now 
    Else 
     TimeChanged = "" 
    End If 
End Function 
関連する問題