Note: The other languages of the website are Google-translated. Back to English

Làm cách nào để ghi lại các giá trị thay đổi trong một ô trong Excel?

Làm cách nào để ghi lại mọi giá trị thay đổi cho một ô thường xuyên thay đổi trong Excel? Ví dụ, giá trị gốc trong ô C2 là 100, khi thay đổi số 100 thành 200, giá trị gốc 100 sẽ được hiển thị trong ô D2 tự động để ghi. Tiếp tục thay đổi 200 thành 300, số 200 sẽ được chèn vào ô D3, thay đổi 300 thành 400 sẽ hiển thị 300 thành D4, v.v. Phương pháp trong bài viết này có thể giúp bạn đạt được điều đó.

Ghi lại các giá trị thay đổi trong một ô có mã VBA


Ghi lại các giá trị thay đổi trong một ô có mã VBA

Mã VBA dưới đây có thể giúp bạn ghi lại mọi giá trị thay đổi trong một ô trong Excel. Hãy làm như sau.

1. Trong trang tính chứa ô bạn muốn ghi lại các giá trị thay đổi, hãy nhấp chuột phải vào tab trang tính rồi nhấp Mã Chế độ xem từ menu ngữ cảnh. Xem ảnh chụp màn hình:

2. Sau đó Microsoft Visual Basic cho các ứng dụng cửa sổ đang mở, vui lòng sao chép mã VBA bên dưới vào cửa sổ Mã.

Mã VBA: ghi lại các giá trị thay đổi trong một ô

Dim xVal As String
'Update by Extendoffice 2018/8/22
Private Sub Worksheet_Change(ByVal Target As Range)
    Static xCount As Integer
    Application.EnableEvents = False
    If Target.Address = Range("C2").Address Then
        Range("D2").Offset(xCount, 0).Value = xVal
        xCount = xCount + 1
    Else
        If xVal <> Range("C2").Value Then
         Range("D2").Offset(xCount, 0).Value = xVal
        xCount = xCount + 1
        End If
    End If
    Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    xVal = Range("C2").Value
End Sub

Chú ý: Trong mã, C2 là ô bạn muốn ghi lại tất cả các giá trị thay đổi của nó. D2 là ô bạn sẽ điền giá trị thay đổi đầu tiên của C2.

3. Nhấn nút Khác + Q chìa khóa để đóng Microsoft Visual Basic cho các ứng dụng cửa sổ.

Kể từ bây giờ, mỗi khi bạn thay đổi giá trị trong ô C2, các giá trị thay đổi trước đó sẽ được ghi lại trong D2 và các ô bên dưới D2.


Các công cụ năng suất văn phòng tốt nhất

Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn

  • Tái sử dụng: Chèn nhanh công thức phức tạp, biểu đồ và bất cứ thứ gì bạn đã sử dụng trước đây; Mã hóa ô với mật khẩu; Tạo danh sách gửi thư và gửi email ...
  • Thanh siêu công thức (dễ dàng chỉnh sửa nhiều dòng văn bản và công thức); Bố cục đọc (dễ dàng đọc và chỉnh sửa số lượng ô lớn); Dán vào Dải ô đã Lọchữu ích. Cảm ơn !
  • Hợp nhất các ô / hàng / cột mà không làm mất dữ liệu; Nội dung phân chia ô; Kết hợp các hàng / cột trùng lặp... Ngăn chặn các ô trùng lặp; So sánh các dãyhữu ích. Cảm ơn !
  • Chọn trùng lặp hoặc duy nhất Hàng; Chọn hàng trống (tất cả các ô đều trống); Tìm siêu và Tìm mờ trong Nhiều Sổ làm việc; Chọn ngẫu nhiên ...
  • Bản sao chính xác Nhiều ô mà không thay đổi tham chiếu công thức; Tự động tạo tài liệu tham khảo sang Nhiều Trang tính; Chèn Bullets, Hộp kiểm và hơn thế nữa ...
  • Trích xuất văn bản, Thêm Văn bản, Xóa theo Vị trí, Xóa không gian; Tạo và In Tổng số phân trang; Chuyển đổi giữa nội dung ô và nhận xéthữu ích. Cảm ơn !
  • Siêu lọc (lưu và áp dụng các lược đồ lọc cho các trang tính khác); Sắp xếp nâng cao theo tháng / tuần / ngày, tần suất và hơn thế nữa; Bộ lọc đặc biệt bằng cách in đậm, in nghiêng ...
  • Kết hợp Workbook và WorkSheets; Hợp nhất các bảng dựa trên các cột chính; Chia dữ liệu thành nhiều trang tính; Chuyển đổi hàng loạt xls, xlsx và PDFhữu ích. Cảm ơn !
  • Hơn 300 tính năng mạnh mẽ. Hỗ trợ Office / Excel 2007-2021 và 365. Hỗ trợ tất cả các ngôn ngữ. Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn. Đầy đủ tính năng Dùng thử miễn phí 30 ngày. Bảo đảm hoàn lại tiền trong 60 ngày.
tab kte 201905

Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
officetab dưới cùng
Nhận xét (50)
Chưa có xếp hạng. Hãy là người đầu tiên xếp hạng!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Hi


Điều này thực sự hoạt động nếu giá trị trong C2 được nhập mỗi lần, nhưng nó không hoạt động nếu C2 chứa công thức. Có cách nào để làm điều này tương tự nhưng với một công thức trong C2 không?


Cảm ơn vì giải pháp dễ dàng này.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Nếu bạn tìm ra cách sử dụng nó nếu C2 có chứa công thức, bạn vui lòng cho tôi biết bạn đã làm như thế nào. Tôi dường như không thể tìm thấy cách truy cập bất cứ nơi nào trên internet.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Ngày tốt,
Mã đã được tối ưu hóa. Xin vui lòng có một thử và cảm ơn cho nhận xét của bạn.

Dim xVal dưới dạng chuỗi
Private Sub Worksheet_Change (ByVal Target As Range)
xCount tĩnh dưới dạng số nguyên
Application.EnableEvents = Sai
If Target.Address = Range ("C2"). Địa chỉ thì
Phạm vi ("D2"). Chênh lệch (xCount, 0) .Value = xVal
xCount = xCount + 1
Khác
Nếu xVal <> Phạm vi ("C2"). Giá trị Thì
Phạm vi ("D2"). Chênh lệch (xCount, 0) .Value = xVal
xCount = xCount + 1
Cuối Nếu
Cuối Nếu
Ứng dụng.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange (ByVal Target As Range)
xVal = Phạm vi ("C2"). Giá trị
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
HAI,



CÁC VBS TRÊN CHỈ C2 CHUYỂN ĐẾN D2,



NHẬP C2 ĐẾN C55 CHUYỂN ĐẾN D2 ĐẾN D55



BẠN CÓ THỂ GIÚP ĐỠ VÀ GỬI CHO TÔI alexmathew33@gmail.com
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Vui lòng giúp tôi về tình huống dưới đây:
Từ Trang 1:
A1 = VALUE (Thay đổi do RTD với Công thức)
B2 = VALUE1 (Thay đổi do RTD với Công thức)

Sao chép tất cả các giá trị trước đó các ô A1, B1 vào Sheet2 của các cột M, NOF Cùng một excel hoặc Sheet1 của Sổ làm việc mới

Hãy chia sẻ với tôi đến melukotahari@gmail.com

-Melukota
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
CHÚNG TÔI CÓ THỂ LẤY VBS CHO NHỮNG NGƯỜI TRÊN KHÔNG
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Điều gì sẽ xảy ra nếu ô C2 là một công thức? Làm cách nào để ghi lại các giá trị của C2 nếu nó là một công thức?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Ngày tốt,
Mã đã được tối ưu hóa. Xin vui lòng có một thử và cảm ơn cho nhận xét của bạn.

Dim xVal dưới dạng chuỗi
Private Sub Worksheet_Change (ByVal Target As Range)
xCount tĩnh dưới dạng số nguyên
Application.EnableEvents = Sai
If Target.Address = Range ("C2"). Địa chỉ thì
Phạm vi ("D2"). Chênh lệch (xCount, 0) .Value = xVal
xCount = xCount + 1
Khác
Nếu xVal <> Phạm vi ("C2"). Giá trị Thì
Phạm vi ("D2"). Chênh lệch (xCount, 0) .Value = xVal
xCount = xCount + 1
Cuối Nếu
Cuối Nếu
Ứng dụng.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange (ByVal Target As Range)
xVal = Phạm vi ("C2"). Giá trị
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
HAI,



CÁC VBS TRÊN CHỈ C2 CHUYỂN ĐẾN D2,



NHẬP C2 ĐẾN C55 CHUYỂN ĐẾN D2 ĐẾN D55



BẠN CÓ THỂ GIÚP ĐỠ VÀ GỬI CHO TÔI alexmathew33@gmail.com
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào - Tôi thực sự đánh giá cao hướng dẫn này ... Tôi đang cố gắng ghi lại giá trị đã thay đổi trên một bảng tính khác. Ví dụ: tôi muốn ghi lại giá trị của sheet1 C2 trên sheet2 D2. Bạn có thể cung cấp mã đã điều chỉnh?
Cảm ơn bạn!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Bản ghi có thể ở dạng Ngang thay vì Dọc không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, Macro này có thể ghi lại hai ô riêng biệt trong hai cột riêng biệt không? I E. Tôi có thể ghi lại Tất cả các giá trị từ A1 trong Cột B và tất cả các Giá trị của C1 trong cột D không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào,
Vui lòng thử phương pháp trong bài viết này:
Làm cách nào để nhớ hoặc lưu giá trị ô trước đó của một ô đã thay đổi trong Excel?
https://www.extendoffice.com/documents/excel/5056-excel-remember-save-previous-cell-value.html
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
cảm ơn bạn vì điều này nhưng thay vì tiếp tục mãi mãi, làm thế nào tôi có thể khởi động lại ở ô đầu tiên sau X số lần?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào,
Ý bạn là sau khi ghi lần lượt gắn kết X, bạn muốn khởi động lại trở lại giá trị bản ghi đầu tiên?
Xin lỗi, tôi không chắc tôi đã nhận được câu hỏi của bạn. Sẽ rất tuyệt nếu bạn có thể cung cấp ảnh chụp màn hình về những gì bạn đang cố gắng làm.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn

nhưng tôi có thể làm gì nếu tôi cần lặp lại nó cho nhiều ô
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn

nhưng tôi có thể làm gì nếu tôi cần lặp lại nó cho một bản thô
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Peki bu kaydı yatay olarak nasıl kaydedeceğiz. Satırlara değil Sütunlara kaydetmesini istiyorum. Teşekkürler
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Làm cách nào để lưu số ngay khi nó được tạo chứ không phải sau khi số mới được tạo? Vấn đề tôi đang gặp phải là số không được ghi ngay mà sau khi số thứ hai được tạo ra; điều này có nghĩa là không phải ô mà tôi đang ghi hoặc ô là mục tiêu đều có số ... làm cách nào tôi có thể ghi lại ngay sau khi số được tạo? Cảm ơn bạn đã giúp đỡ!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào John,
Xin lỗi không thể giúp bạn với điều đó. Chào mừng bạn đến đăng bất kỳ câu hỏi nào trong diễn đàn của chúng tôi: https://www.extendoffice.com/forum.html. Cảm ơn bình luận của bạn.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, Có thể áp dụng điều này cho nhiều ô không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào! Cảm ơn vì mã, nhưng tôi có một câu hỏi

Có cách nào để sửa đổi mã, sao cho nó ghi lại giá trị nếu ô hàng ngày hoặc vào những ngày nhất định, mà tôi chỉ định trong một cột riêng biệt?


Cảm ơn!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Thử đi

Dim xVal dưới dạng chuỗi
Dim iVal dưới dạng số nguyên
Private Sub Worksheet_Change (ByVal Target As Range)
xCount tĩnh dưới dạng số nguyên
iVal = Application.WorksheetFunction.Count (Phạm vi ("F: F"), 1)
xCount = iVal
Application.EnableEvents = Sai
If Target.Address = Range ("C2"). Địa chỉ thì
Range ("E3"). Offset (xCount, 0) .Value = Range ("C2"). Giá trị
Range ("F3"). Offset (xCount, 0) .Value = Now
xCount = xCount + 1
Khác
Nếu xVal <> Phạm vi ("C2"). Giá trị Thì
Range ("E3"). Offset (xCount, 0) .Value = Range ("C2"). Giá trị
Range ("F3"). Offset (xCount, 0) .Value = Now
xCount = xCount + 1
Cuối Nếu
Cuối Nếu
Ứng dụng.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange (ByVal Target As Range)
xVal = Phạm vi ("C2"). Giá trị
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi đã thử mã này cho ô C2 chứa các giá trị DDE thay đổi từng giây. Tôi sử dụng mã sau đây nhưng không hoạt động.

Dim xVal dưới dạng chuỗi
Private Sub Worksheet_Change (ByVal Target As Range)
xCount tĩnh dưới dạng số nguyên
Application.EnableEvents = Sai
If Target.Address = Range ("C2"). Địa chỉ thì
Phạm vi ("D2"). Chênh lệch (xCount, 0) .Value = xVal
xCount = xCount + 1
Khác
Nếu xVal <> Phạm vi ("C2"). Giá trị Thì
Phạm vi ("D2"). Chênh lệch (xCount, 0) .Value = xVal
xCount = xCount + 1
Cuối Nếu
Cuối Nếu
Ứng dụng.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange (ByVal Target As Range)
xVal = Phạm vi ("C2"). Giá trị
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Good day,
Bạn sử dụng phiên bản Excel nào?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
nó hoạt động khi tôi nhập dữ liệu, nó không hoạt động khi tôi truyền trực tiếp dữ liệu thời gian thực đến ô này (= RTD (.....)). làm thế nào tôi có thể làm cho nó hoạt động với RTD?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn rất nhiều về các hướng dẫn, tôi muốn biết liệu có cách nào để làm cho một ô hoạt động như một máy tính bình thường không.
tức là ô này phải có khả năng tổng hợp các số liệu xuất hiện trong một ô khác, trong khi vẫn hiển thị số liệu tích lũy cuối cùng.
Ô khác này sẽ là ô nhập khóa hoặc ô hoạt động.
Ví dụ:
Ô 1: = 2 * 5, Câu trả lời xuất hiện trong Ô 2,
Ô 1: = 3 * 6.8, Câu trả lời được thêm vào giá trị trước đó là kết quả từ (2 * 5) và vẫn xuất hiện trong ô 2.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Công thức trên không hoạt động đối với các công thức, chỉ dành cho nhập thủ công. có cách nào để thay đổi mã để làm cho nó hoạt động cho các ô chứa công thức không?



Dim xVal dưới dạng chuỗi
'Cập nhật bởi Extendoffice 2018 / 8 / 22
Private Sub Worksheet_Change (ByVal Target As Range)
xCount tĩnh dưới dạng số nguyên
Application.EnableEvents = Sai
If Target.Address = Range ("C2"). Địa chỉ thì
Phạm vi ("D2"). Chênh lệch (xCount, 0) .Value = xVal
xCount = xCount + 1
Khác
Nếu xVal <> Phạm vi ("C2"). Giá trị Thì
Phạm vi ("D2"). Chênh lệch (xCount, 0) .Value = xVal
xCount = xCount + 1
Cuối Nếu
Cuối Nếu
Ứng dụng.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange (ByVal Target As Range)
xVal = Phạm vi ("C2"). Giá trị
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Ngày tốt,
Vui lòng thử VBA bên dưới.



Dim xVal dưới dạng chuỗi

Private Sub Worksheet_Change (ByVal Target As Range)

xCount tĩnh dưới dạng số nguyên

Application.EnableEvents = Sai

If Target.Address = Range ("C2"). Địa chỉ thì

Phạm vi ("D2"). Chênh lệch (xCount, 0) .Value = xVal

xCount = xCount + 1

Khác

Nếu xVal <> Phạm vi ("C2"). Giá trị Thì

Phạm vi ("D2"). Chênh lệch (xCount, 0) .Value = xVal

xCount = xCount + 1

Cuối Nếu

Cuối Nếu

Ứng dụng.EnableEvents = True

End Sub

Private Sub Worksheet_SelectionChange (ByVal Target As Range)

xVal = Phạm vi ("C2"). Giá trị

End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
không hoạt động cho các công thức
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Thế giới này tốt, tuy nhiên, tôi muốn áp dụng mã này cho 2 ô khác nhau, lưu các giá trị thay đổi cho mỗi ô trong các cột tương ứng, riêng biệt. Làm thế nào mã có thể được sửa đổi? Thanks.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào,

Vui lòng thử phương pháp trong bài viết này:

Làm cách nào để nhớ hoặc lưu giá trị ô trước đó của một ô đã thay đổi trong Excel?

https://www.extendoffice.com/documents/excel/5056-excel-remember-save-previous-cell-value.html
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Có thể điều chỉnh điều này và sử dụng với DDE / RTD không? Hoạt động tốt khi thay đổi ô theo cách thủ công, nhưng không hoạt động với DDE / RTD.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Có thể thay đổi điều này để hoạt động cho nhiều ô trong một trang tính không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào,

Vui lòng thử phương pháp trong bài viết này:

Làm cách nào để nhớ hoặc lưu giá trị ô trước đó của một ô đã thay đổi trong Excel?

https://www.extendoffice.com/documents/excel/5056-excel-remember-save-previous-cell-value.html
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào! Tôi đã thử sử dụng mã này để ghi lại mọi thay đổi trong giá trị của một ô cụ thể. Tuy nhiên, tôi tự hỏi liệu có ai có thể giúp tôi bằng cách sửa đổi nó để thay đổi giá trị được thu thập trong tab KHÁC NHAU và cũng vì vậy nó được lưu mỗi khi đóng sổ làm việc. Vì nó sắp xếp lại chính nó mỗi khi mở sổ làm việc mà không lưu các giá trị trước đó. Mã: Dim xVal As String
'Cập nhật bởi Extendoffice 2018 / 8 / 22
Private Sub Worksheet_Change (ByVal Target As Range)
xCount tĩnh dưới dạng số nguyên
Application.EnableEvents = Sai
If Target.Address = Range ("J7"). Địa chỉ thì
Phạm vi ("AB2"). Chênh lệch (xCount, 0) .Value = xVal
xCount = xCount + 1
Khác
Nếu xVal <> Phạm vi ("J7"). Giá trị Thì
Phạm vi ("AB2"). Chênh lệch (xCount, 0) .Value = xVal
xCount = xCount + 1
Cuối Nếu
Cuối Nếu
Ứng dụng.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange (ByVal Target As Range)
xVal = Phạm vi ("J7"). Giá trị
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, Cảm ơn vì những điều dưới đây. Câu hỏi nhanh .... bạn có thể đặt lại điều này đôi khi theo yêu cầu của bạn, bạn có thể yêu cầu macro xóa tất cả các số trước đó và bắt đầu ghi lại các số từ ô D2 không? Hiện tại, các số được ghi D2, D3, D4, D5, D6, v.v.
Không có bình luận nào được đăng ở đây
Tải thêm
Để lại ý kiến ​​của bạn
Đăng với tư cách khách
×
Đánh giá bài viết này:
0   Nhân vật
Các vị trí được đề xuất

Kết nối với chúng tôi

Bản quyền © 2009 - www.extendoffice.com. | Đã đăng ký Bản quyền. cung cấp bởi ExtendOffice. | BẢN ĐỒ CHI NHÁNH
Microsoft và logo Office là các nhãn hiệu hoặc nhãn hiệu đã đăng ký của Microsoft Corporation tại Hoa Kỳ và / hoặc các quốc gia khác.
Được bảo vệ bởi Sectigo SSL