美好的一天,我需要在一個工作簿中創建兩個私有宏 - 一個存儲單元格內容後的單元格,另一個存儲單元格的新值併發送和發送電子郵件的主體單元格中的舊文本和單元格中的新文本。Private Sub Worksheet_SelectionChange/Worksheet_Change
真相被告知,我不確定這是否是正確的方法(或者甚至可能),但我不經常使用私有宏,所以我會很感激任何幫助。非常感謝!
這是我走到這一步:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
OldCellValue = ActiveCell.text
old_value = OldCellValue
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Area As Range
Dim OutlApp As Object
Dim IsCreated As Boolean
Dim cell As String
Dim old_value As String
Dim new_value As String
Set Area = Range("A1:E20")
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Area) Is Nothing Then
cell = ActiveCell.Address
new_value = ActiveCell.text
On Error Resume Next
Set OutlApp = GetObject(, "Outlook.Application")
If Err Then
Set OutlApp = CreateObject("Outlook.Application")
IsCreated = True
End If
OutlApp.Visible = True
On Error GoTo 0
With OutlApp.CreateItem(0)
.Subject = "Change in table"
.to = "someones email"
.HTMLBody = "Change in cell " & "<B>" & cell & "</B><br>" _
& "Old value: " & old_value & "New value: " & new_value
On Error Resume Next
.Send
Application.Visible = True
On Error GoTo 0
End With
If IsCreated Then OutlApp.Quit
Set OutlApp = Nothing
End With
End If
End Sub
你的問題是什麼 - 代碼不工作,不做你想要的....? – SJR
此代碼不起作用。當我單擊時它會從單元格中加載文本,但是當我進行更改並按下Enter鍵時,它將移動到下一行,該行將更改old_value上的變量。有時甚至在old_value中顯示空單元格,即使單元格和單元格中有文本。 –