2016-03-19 6 views
0

"today"という単語を含むセルにコメントを追加すると、VBAコードを "today"をそのコメントの今日の日付に置き換えるようにしたいとします。しかし、ここでの問題は、コメントがいつ追加されたか、またはどのセル(範囲オブジェクト)にいつ追加されたかを知るイベント(または他の方法)を見つけることができなかったことです。何か案は?コメントを追加した後にVBAコードをトリガーする方法は?

私の現在の愚かなソリューションを実行し、(それは私が選択変更前の古い場所を取得できませんでした残念だ)Worksheet_SelectionChangeイベント内のVBAコードを追加し、For Eachループを行い、シート内の各コメントをチェックすることですその交換。

+0

なぜあなたは 'BeforeSave'イベントで一度だけそれをしないだろうか? – trincot

+0

あなたの質問はタイプミスでいっぱいです。あなたの読者にとても礼儀正しく、これを修正してください。 –

+1

LMAO ...オススメについて不平を言っていますか? – Rodger

答えて

0

「ヘルパー」セルを使用して最後に選択されたセルのアドレスを格納することで、ユーザーがコメントを完了して別のセルを選択すると、イベントハンドラが「最後の」セルのみをチェックするようにすることができます

次の何のような

何か(私は「ヘルパー」として、セル「A1」を使用)

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
Dim cmt As Comment 

With Target 
    If .Address <> Cells(1, 1) Then 
    Set cmt = Range(Cells(1, 1)).Comment 
     If Not cmt Is Nothing Then 
      With cmt 
       .Text (Replace(.Text, "today", Date)) 
      End With 
     End If 
    End If 
End With 

Cells(1, 1) = Target.Address 

End Sub 
+0

良いアイデア、私はこのようにそれをやって考えたことがない...おかげでたくさん! – RealLifePM

+0

うれしかったです。ちょうど1警告:あなたは今までにはThisWorkbookモジュールに同じワークシートモジュール内の「Worksheet_Change」イベントハンドラまたは「Workbook_SheetChange」1を追加する必要がある必要があり、その後、あなたは右の細胞 '前= false'を声明' Application.EnableEventsを追加します(1親切なノート用、1)= Target.Address'と 'Application.EnableEvents = true'を右後 – user3598756

+0

感謝。とった :) – RealLifePM

関連する問題