如何在Excel中記住或保存已更改單元格的先前單元格值?

      網友投稿 1205 2025-03-31

      如何在Excel中記住或保存已更改單元格的先前單元格值?

      通常,當用新內容更新單元格時,會覆蓋以前的值,除非在 Excel 中撤消操作。 但是,如果您想保留先前的值以與更新的值進行比較,將先前的單元格值保存到另一個單元格或單元格注釋中將是一個不錯的選擇。 本文中的方法將幫助您實現它。

      在Excel中使用VBA代碼保存以前的單元格值

      在Excel中使用VBA代碼保存以前的單元格值
      驚人的! 在 Excel 中使用高效的選項卡,如 Chrome、Firefox 和 Safari! 每天節省50%的時間,并減少數千次鼠標單擊!

      假設您有一個表格,如下所示。 如果C列中的任何單元格發生更改,則要將其先前的值保存到G列的相應單元格中,或自動保存在注釋中。 請按照以下步驟進行操作。

      1.在工作表中包含更新時將保存的值,右鍵單擊工作表選項卡,然后選擇 查看代碼 從右鍵單擊菜單中。 看截圖:

      2.在開幕 Microsoft Visual Basic應用程序 窗口,將下面的VBA代碼復制到“代碼”窗口中。

      以下VBA代碼可幫助您將指定列的先前單元格值保存到另一列中。

      VBA代碼:將先前的單元格值保存到另一個列單元格中

      Dim xRg As Range Dim xChangeRg As Range Dim xDependRg As Range Dim xDic As New Dictionary Private Sub Worksheet_Change(ByVal Target As Range) Dim I As Long Dim xCell As Range Dim xDCell As Range Dim xHeader As String Dim xCommText As String On Error Resume Next Application.ScreenUpdating = False Application.EnableEvents = False xHeader = "Previous value :" x = xDic.Keys For I = 0 To UBound(xDic.Keys) Set xCell = Range(xDic.Keys(I)) Set xDCell = Cells(xCell.Row, 7) xDCell.Value = "" xDCell.Value = xDic.Items(I) Next Application.EnableEvents = True Application.ScreenUpdating = True End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim I, J As Long Dim xRgArea As Range On Error GoTo Label1 If Target.Count > 1 Then Exit Sub Application.EnableEvents = False Set xDependRg = Target.Dependents If xDependRg Is Nothing Then GoTo Label1 If Not xDependRg Is Nothing Then Set xDependRg = Intersect(xDependRg, Range("C:C")) End If Label1: Set xRg = Intersect(Target, Range("C:C")) If (Not xRg Is Nothing) And (Not xDependRg Is Nothing) Then Set xChangeRg = Union(xRg, xDependRg) ElseIf (xRg Is Nothing) And (Not xDependRg Is Nothing) Then Set xChangeRg = xDependRg ElseIf (Not xRg Is Nothing) And (xDependRg Is Nothing) Then Set xChangeRg = xRg Else Application.EnableEvents = True Exit Sub End If xDic.RemoveAll For I = 1 To xChangeRg.Areas.Count Set xRgArea = xChangeRg.Areas(I) For J = 1 To xRgArea.Count xDic.Add xRgArea(J).Address, xRgArea(J).Formula Next Next Set xChangeRg = Nothing Set xRg = Nothing Set xDependRg = Nothing Application.EnableEvents = True End Sub
      Copy

      要在注釋中保存以前的單元格值,請應用以下VBA代碼

      VBA代碼:在注釋中保存以前的單元格值

      Dim xRg As Range Dim xChangeRg As Range Dim xDependRg As Range Dim xDic As New Dictionary Private Sub Worksheet_Change(ByVal Target As Range) Dim I As Long Dim xCell As Range Dim xHeader As String Dim xCommText As String On Error Resume Next Application.ScreenUpdating = False Application.EnableEvents = False xHeader = "Previous value :" For I = 0 To UBound(xDic.Keys) Set xCell = Range(xDic.Keys(I)) If Not xCell.Comment Is Nothing Then xCell.Comment.Delete With xCell .AddComment .Comment.Visible = False .Comment.Text xHeader & vbCrLf & xDic.Items(I) End With Next Application.EnableEvents = True Application.ScreenUpdating = True End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim I, J As Long Dim xRgArea As Range On Error GoTo Label1 If Target.Count > 1 Then Exit Sub Application.EnableEvents = False Set xDependRg = Target.Dependents If xDependRg Is Nothing Then GoTo Label1 If Not xDependRg Is Nothing Then Set xDependRg = Intersect(xDependRg, Range("C:C")) End If Label1: Set xRg = Intersect(Target, Range("C:C")) If (Not xRg Is Nothing) And (Not xDependRg Is Nothing) Then Set xChangeRg = Union(xRg, xDependRg) ElseIf (xRg Is Nothing) And (Not xDependRg Is Nothing) Then Set xChangeRg = xDependRg ElseIf (Not xRg Is Nothing) And (xDependRg Is Nothing) Then Set xChangeRg = xRg Else Application.EnableEvents = True Exit Sub End If xDic.RemoveAll For I = 1 To xChangeRg.Areas.Count Set xRgArea = xChangeRg.Areas(I) For J = 1 To xRgArea.Count xDic.Add xRgArea(J).Address, xRgArea(J).Text Next Next Set xChangeRg = Nothing Set xRg = Nothing Set xDependRg = Nothing Application.EnableEvents = True End Sub
      Copy

      備注:在代碼中,數字7表示將先前的單元格保存到的G列,而C:C是將先前的單元格值保存的列。 請根據您的需要進行更改。

      3。 點擊 工具 > 參考資料 打開 裁判– VBAProject 對話框,檢查 Microsoft腳本運行時 框,最后單擊 OK 按鈕。 看截圖:

      4。 按 其他 + Q 關閉鍵 Microsoft Visual Basic應用程序 窗口。

      從現在開始,當C列中的單元格值更新時,該單元格的先前值將保存到G列中的相應單元格中,或保存在注釋中,如下面的屏幕快照所示。

      將以前的單元格值保存在其他單元格中:

      在注釋中保存以前的單元格值:

      最佳辦公生產力工具

      將小時轉化為分鐘 Kutools for Excel!

      準備好增強您的 Excel 任務了嗎? 利用的力量 Kutools for Excel - 您終極的節省時間的工具。 簡化復雜的任務并像專業人士一樣瀏覽數據。 以閃電般的速度體驗 Excel!

      為什么需要 Kutools for Excel

      ???  超過 300 項強大功能: Kutools 包含 300 多項高級功能,可簡化您在 1500 多種場景中的工作。

      ??  卓越的數據處理能力:合并單元格、刪除重復項并執行高級數據轉換 - 所有這些都不費吹灰之力!

      ??  高效的批量操作:當你可以聰明地工作時,為什么還要付出額外的努力呢? 輕松批量導入、導出、組合和調整數據。

      ??  可定制的圖表和報告:訪問各種附加圖表并生成富有洞察力的報告。

      ???  強大的導航窗格:通過強大的列管理器、工作表管理器和自定義收藏夾獲得優勢。

      ??  七種類型的下拉列表:通過各種功能和類型的下拉列表使數據輸入變得輕而易舉。

      如何在Excel中記住或保存已更改單元格的先前單元格值?

      ??  用戶友好:對于初學者來說輕而易舉,對于專家來說是一個強大的工具。

      立即下載,與 Excel 一起穿越時空!

      閱讀更多 免費下載... 采購... 
      Office Tab 為 Office 帶來選項卡式界面,讓您的工作更輕松
      在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。 在同一窗口的新選項卡中而不是在新窗口中打開并創建多個文檔。 每天將您的工作效率提高50%,并減少數百次鼠標單擊!
      閱讀更多 免費下載... 采購... 

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:word生成甘特圖
      下一篇:怎么換成老版本? 10(怎樣把新版本轉舊版本)
      相關文章
      a级亚洲片精品久久久久久久| 亚洲一区精品伊人久久伊人| 亚洲av最新在线网址| 国产精品亚洲综合一区| 亚洲成a人片在线观看久| 国产成人精品久久亚洲高清不卡 | 自拍偷自拍亚洲精品情侣| 亚洲精品综合久久| 久久久久亚洲AV综合波多野结衣| 亚洲精品国产V片在线观看| 亚洲国产精品无码久久青草| 亚洲成AV人在线观看网址| 亚洲真人日本在线| 日韩精品亚洲aⅴ在线影院| 亚洲女同成av人片在线观看| 亚洲精品无码久久久久去q| 亚洲成色www久久网站夜月| 无码欧精品亚洲日韩一区| 亚洲激情在线视频| 亚洲精品电影在线| 亚洲人6666成人观看| 亚洲一区二区影视| 亚洲日本VA午夜在线电影| 亚洲av无码片vr一区二区三区| jizzjizz亚洲日本少妇| 亚洲精品NV久久久久久久久久| 超清首页国产亚洲丝袜| 亚洲香蕉网久久综合影视| 亚洲国产精品成人精品无码区| 亚洲电影国产一区| 亚洲国产精品午夜电影 | 亚洲综合精品网站| 亚洲精品~无码抽插| 久久精品蜜芽亚洲国产AV | 国产精品亚洲αv天堂无码| 亚洲国产精华液网站w| 久久久亚洲AV波多野结衣| 亚洲香蕉久久一区二区三区四区| 亚洲精品无AMM毛片| 亚洲国产成人乱码精品女人久久久不卡 | 亚洲成_人网站图片|