2016-03-19 21 views
0

如果你在包含單詞「today」的單元格中添加註釋,那麼我們希望VBA代碼被激活以用當前日期替換「today」。但是這裏的問題是,我無法找到一個事件(或任何其他方式)知道何時添加了評論,或者哪個單元格(範圍對象)。有任何想法嗎?如何在添加評論後觸發VBA代碼?

我現在的愚蠢解決方案是增加內部Worksheet_SelectionChange事件VBA代碼(這是一個恥辱,我不能讓選擇改變以前的老位置),然後做一個For Each循環,檢查表中的每個評論,然後執行更換。

+0

爲什麼你會不會在'BeforeSave'事件做一次就好? – trincot

+0

你的問題充滿了錯別字。 Olease對你的讀者很客氣,並糾正這一點。 –

+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

很高興幫助。只是一個警告:如果您需要在同一個工作表模塊中添加一個「Worksheet_Change」事件處理程序或在ThisWorkbook模塊中添加一個「Workbook_SChange」事件處理程序,那麼您應該在'Cells(1)之前添加'Application.EnableEvents = False'語句,1)= Target.Address'和'Application.EnableEvents = True'緊接在 – user3598756

+0

之後謝謝你的提示。得到它了 :) – RealLifePM