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

Làm cách nào để theo dõi các thay đổi mà không cần chia sẻ sổ làm việc?

Thông thường, khi bạn áp dụng tính năng Theo dõi Thay đổi trong Excel, sổ làm việc sẽ được chia sẻ cùng một lúc, điều này sẽ gây khó chịu vì một số tính năng trong Excel sẽ bị vô hiệu hóa. Làm cách nào bạn có thể theo dõi các thay đổi mà không cần chia sẻ sổ làm việc? Ở đây, tôi sẽ giới thiệu một mã VBA cho bạn.

Theo dõi các thay đổi mà không cần chia sẻ sổ làm việc với mã VBA


mũi tên màu xanh bong bóng bên phải Chuyển đổi văn bản thành bảng trong Outlook

Không có cách nào trực tiếp để bạn giải quyết vấn đề này, nhưng bạn có thể áp dụng mã VBA linh hoạt để giải quyết nó, vui lòng làm như sau:

1. Nhấp chuột phải vào tab trang tính mà bạn muốn theo dõi các ô đã thay đổi và chọn Mã Chế độ xem từ menu ngữ cảnh, trong cửa sổ bật ra Microsoft Visual Basic cho các ứng dụng cửa sổ, vui lòng sao chép và dán đoạn mã sau vào chỗ trống Mô-đun:

Mã VBA: Theo dõi các thay đổi mà không cần chia sẻ sổ làm việc:

Private Sub Worksheet_Change(ByVal Target As Range)
  'Updateby Extendoffice
    Const xRg As String = "A1:Z1000"
    Dim strOld As String
    Dim strNew As String
    Dim strCmt As String
    Dim xLen As Long
    With Target(1)
        If Intersect(.Cells, Range(xRg)) Is Nothing Then Exit Sub
        strNew = .Text
        Application.EnableEvents = False
        Application.Undo
        strOld = .Text
        .Value = strNew
        Application.EnableEvents = True
        strCmt = "Edit: " & Format$(Now, "dd Mmm YYYY hh:nn:ss") & " by " & _
        Application.UserName & Chr(10) & "Previous Text :- " & strOld
        If Target(1).Comment Is Nothing Then
            .AddComment
        Else
            xLen = Len(.Comment.Shape.TextFrame.Characters.Text)
        End If
        With .Comment.Shape.TextFrame
            .AutoSize = True
            .Characters(Start:=xLen + 1).Insert IIf(xLen, vbLf, "") & strCmt
        End With
    End With
End Sub

doc theo dõi thay đổi mà không cần chia sẻ 1

Chú thích: Trong đoạn mã trên, A1: Z1000 là phạm vi dữ liệu mà bạn muốn theo dõi các thay đổi.

2. Sau đó, lưu và đóng cửa sổ mã này, bây giờ, khi bạn thay đổi các giá trị trong bất kỳ ô nào trong phạm vi được chỉ định mà bạn đã đặt trong mã, các ô sẽ được theo dõi và sổ làm việc không được chia sẻ. Xem ảnh chụp màn hình:

doc theo dõi thay đổi mà không cần chia sẻ 2


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 (14)
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
Công việc tuyệt vời. Rất tiếc, có một số vấn đề với mã của bạn. - Nó sẽ thêm một nhận xét ngay cả trên mục nhập đầu tiên của ô. Làm cách nào để tôi có thể theo dõi các thay đổi từ mục nhập thứ hai không phải mục nhập đầu tiên? - Sau khi nhập giá trị vào ô, tôi không thể thực hiện "Hoàn tác". - Nó không hoạt động với bảng. Cố gắng sử dụng trên một bảng, sau đó cố gắng thêm hoặc xóa một tài liệu thô và mã sẽ bị lỗi. Tôi thực sự ước mình có kiến ​​thức để mã hoạt động theo cách tôi muốn như mô tả ở trên.
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 có cùng một vấn đề. Các nút "Hoàn tác" và "Làm lại" không hoạt động nữa. Có giải pháp nào cho điều 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
Tôi đã thử sử dụng mã VBA này trong trang tính excel của mình. Nhưng nó đã cho tôi lỗi. Tôi không biết macro này nên được gọi từ đâu và đối số của hàm bạn đã cung cấp khi nó được gọi là gì.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Có cách nào để ghi lại các thay đổi cho tất cả các tab trong sổ làm việc và ghi lại các thay đổi cho một bảng tính mới không? Điều đó thật tuyệt vời ... và tôi không thể tìm thấy bất kỳ thông tin nào trên internet với loại quy trình theo dõi 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
Xin chào, jfjoyner, Để thay đổi mã này cho tất cả các trang tính và ghi lại các thay đổi theo dõi sang một trang tính khác, vui lòng sử dụng mã dưới đây:
Lưu ý: Vui lòng đặt mã này vào mô-đun ThisWorkbook.
Option Explicit
Dim mStrRgAddress As String
Dim mStrRgValue As String

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Const xRg As String = "A1:Z1000"
Const xSheetName As String = "Record sheet" 'The sheet that you want to put the track changes, please change the sheet name to your own.
Dim strOld As String
Dim strNew As String
Dim strCmt As String
Dim xLen As Long
Dim xSheet As Worksheet
Dim xRgCell As Range
Dim xRgCell2 As Range
On Error Resume Next
Set xSheet = Application.Sheets.Item(xSheetName)
If mStrRgAddress <> "" Then
Set xRgCell = Range(mStrRgAddress)
If xRgCell.Text <> mStrRgValue Then
strCmt = mStrRgAddress & " : " & Format$(Now, "dd Mmm YYYY hh:nn:ss") & " by " & _
Application.UserName & Chr(10) & "Previous Text :- " & mStrRgValue
Set xRgCell2 = xSheet.Range("a1048576").End(xlUp)
If xRgCell2.AddressLocal = xSheet.Range("A1").AddressLocal Then
If xRgCell2.Value <> "" Then
Set xRgCell2 = xRgCell2.Offset(1, 0)
End If
Else
Set xRgCell2 = xRgCell2.Offset(1, 0)
End If
xRgCell2.Value = strCmt
End If
End If
If xSheet.Name = Sh.Name Then Exit Sub
mStrRgValue = Target.Text
mStrRgAddress = Target.AddressLocal(False, False, , True)
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
Cảm ơn, điều này thật tuyệt, nhưng tôi không thể làm cho nó hoạt động được. Tôi cho rằng nó chạy tự động, nghĩa là không cần nhấp vào "Run"? Tôi đã đổi tên trang tính thành {--TRACK_CHANGES--} để làm theo hướng dẫn bạn để lại bằng màu xanh lục. Cho đến nay, nó không được ghi lại bất cứ điều gì. Thanks.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Một lần nữa, cảm ơn skyyang. Tôi cũng nhận thấy rằng khi tôi dán cái này vào mô-đun cho This Workbook, bảng tính lớn của tôi bắt đầu tính toán liên tục và sẽ không dừng lại. Tôi không biết gì về lập trình VBA, nhưng tôi tìm thấy cuộc thảo luận này về cùng một chủ đề. Nó có thể giải thích tại sao việc tính toán vẫn diễn ra vô tận. https://www.mrexcel.com/board/threads/continuous-calculation-wont-stop.1179541/page-6#posts 
Vấn đề trên trang web này là:Nhưng một khi vấn đề tính toán liên tục bắt đầu, nó sẽ dai dẳng. Nhấn phím Esc không làm gián đoạn tính toán, nhưng nó bắt đầu sao lưu lại ngay trừ khi tôi chuyển sang Thủ công Calc. Chế độ calc thủ công hoạt động tốt cho đến khi tôi chạy bất kỳ macro nào, sau đó kết thúc bằng cách bật lại AutoCalc ... Tôi đã xem qua từng trang tính trong mô hình và chạy kiểm tra lỗi không có kết quả.
Kết luận của họ là: Điều này đúng: khi bạn tham chiếu đến một đối tượng biểu mẫu hoặc thuộc tính của nó (frmBudget.startupposition = 3) - đối tượng sau đó sẽ được tải cho đến khi bạn dỡ bỏ nó hoặc đặt lại dự án của mình (Mất trạng thái - Tại thời điểm này TẤT CẢ các biến được đặt lại và bất kỳ giá trị nào bị mất)
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 jfjoyner3, Bạn có khỏe không. Như bạn có thể thấy trong hai ảnh chụp màn hình, tôi đã thay đổi "bản ghi" thành "sheet2" trong Mã VBA. 
Sau đó, tôi quay lại sổ làm việc Excel. Sau khi tôi thực hiện một số thay đổi trong sheet1, tất cả những thay đổi này được ghi lại trong sheet2.
Đối với vấn đề tính toán liên tục, bạn có thể vui lòng gửi cho chúng tôi ảnh chụp màn hình hoặc video về vấn đề của bạn được không? Vì vậy, chúng tôi có thể hiểu đầy đủ những gì đang diễn ra ở đây. Thanks! 
Trân trọng, Mandy
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 rất 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
Xin chào jfjoyner3, Bạn được chào đón. Sau khi bạn lưu bảng tính với mã VBA macro, macro sẽ tự động bắt đầu mỗi khi bạn mở bảng tính. Không cần phải khởi động nó theo cách thủ công. Bất kỳ câu hỏi, xin vui lòng liên hệ với chúng tôi. Chúc một ngày tốt lành! Trân trọng, Mandy   
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
MandyZhou, cảm ơn bạn. Macro này có tự động bắt đầu khi tôi mở bảng tính không? Hay tôi phải bắt đầu nó theo cách thủ công? 
Vấn đề tính toán liên tục có liên quan đến một ứng dụng khác. 
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 jfjoyner3, Đầu tiên, sau khi bạn sao chép Mã VBA của chúng tôi vào mô-đun ThisWorkbook, mã sẽ tự động chạy. Thứ hai, mã VBA của chúng tôi hoạt động. Plesae xem hai ảnh chụp màn hình mà tôi đã tải lên trong bình luận 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
Mandyzhou, Cảm ơn bạn một lần nữa vì hướng dẫn chi tiết này. Tôi đang gặp lỗi Cú pháp và nó chỉ cho tôi dòng này:

Nếu mStrRgAddress <> "" Thì

Bạn có thể hướng dẫn để sửa đổi điều này và loại bỏ Lỗi cú pháp không?
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
MAcro này có nắm bắt các thay đổi về giá trị công thức mỗi khi mô hình dữ liệu của tôi được cập nhật không?
Không có bình luận nào được đăng ở đây
Để 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