Tự động đặt văn bản vào bình luận (Microsoft Excel)
Grant có một ô trong trang tính mà khi ai đó bắt đầu nhập vào ô đó, anh ta muốn bất kỳ thứ gì họ nhập sẽ kết thúc trong một nhận xét được đính kèm với ô đó. Bản thân ô phải để trống, nhưng nhận xét phải chứa bất cứ điều gì đã được nhập.
Cách duy nhất để hoàn thành nhiệm vụ này là sử dụng macro.
Sử dụng các khả năng xử lý sự kiện của Excel, bạn có thể tạo một macro được kích hoạt bất cứ khi nào một ô được thay đổi. Nếu ô đã thay đổi là ô mà bạn muốn nhận xét được liên kết với, thì bạn có thể chuyển nội dung ô vào nhận xét và xóa chúng khỏi chính ô đó. Macro ngắn sau đây sẽ làm điều đó:
Private Sub Worksheet_Change(ByVal Target As Range) Dim rCell As Range Dim sTemp As String Set rCell = Range("B4") If Not Intersect(Target, rCell) Is Nothing Then sTemp = rCell.Value rCell.ClearComments If Len(sTemp) > 0 Then Application.EnableEvents = False On Error Resume Next rCell.AddComment rCell.Comment.Text Text:=sTemp On Error GoTo 0 rCell.ClearContents Application.EnableEvents = True End If End If End Sub
Lưu ý rằng vì đây là một trình xử lý sự kiện, nó cần được thêm vào mô-đun mã cho trang tính bạn muốn bị ảnh hưởng. Trong trường hợp này, mã chuyển đến nhận xét chỉ được kích hoạt khi thay đổi được thực hiện trong ô B4; địa chỉ này có thể được thay đổi trong mã, nếu muốn.
Cũng cần lưu ý rằng macro này chỉ được kích hoạt sau khi người dùng nhập xong nội dung nào đó vào ô B4. Nó không được kích hoạt khi người dùng bắt đầu nhập. Vì vậy, việc nhập dữ liệu thực tế vẫn xảy ra trong ô B4, không phải trong chính nhận xét. Hơn nữa, nếu ai đó nhập nội dung nào đó vào ô B4, thì mọi nhận xét hiện có sẽ bị mất vì macro xóa nó trước khi chuyển nội dung ô vào nhận xét.
ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.
Mẹo này (13511) áp dụng cho Microsoft Excel 2007, 2010, 2013 và 2016.