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

Làm cách nào để tự động điền ngày vào ô khi ô liền kề được cập nhật trong Excel?

Đôi khi, khi cập nhật một ô trong một cột nhất định, bạn có thể muốn đánh dấu ngày cập nhật mới nhất. Bài viết này sẽ giới thiệu một phương pháp VBA để giải quyết vấn đề này. Khi ô được cập nhật, ô liền kề sẽ được tự động điền ngày hiện tại ngay lập tức.

Tự động điền ngày hiện tại vào ô khi ô liền kề được cập nhật bằng mã VBA


Tự động điền ngày hiện tại vào ô khi ô liền kề được cập nhật bằng mã VBA

Giả sử dữ liệu bạn cần cập nhật nằm trong cột B và khi ô trong cột B được cập nhật, ngày hiện tại sẽ được điền vào ô liền kề của cột A. Xem ảnh chụp màn hình:

Bạn có thể chạy mã VBA sau để giải quyết vấn đề này.

1. Bấm chuột phải vào tab trang tính bạn cần để tự động điền ngày dựa trên ô được cập nhật liền kề, rồi bấm Mã Chế độ xem từ menu chuột phải.

2. Trong cửa sổ Microsoft Visual Basic for Applications, vui lòng sao chép và dán mã VBA bên dưới vào cửa sổ Mã.

Mã VBA: tự động điền ngày hiện tại vào một ô khi ô liền kề được cập nhật

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Updated by Extendoffice 2017/10/12
    Dim xRg As Range, xCell As Range
    On Error Resume Next
    If (Target.Count = 1) Then
        If (Not Application.Intersect(Target, Me.Range("B:B")) Is Nothing) Then _
            Target.Offset(0, -1) = Date
        Application.EnableEvents = False
        Set xRg = Application.Intersect(Target.Dependents, Me.Range("B:B"))
        If (Not xRg Is Nothing) Then
            For Each xCell In xRg
                xCell.Offset(0, -1) = Date
            Next
        End If
        Application.EnableEvents = True
    End If
End Sub

Chú ý:

1). Trong mã, B: B có nghĩa là dữ liệu cập nhật nằm trong cột B.
2). -1 cho biết rằng ngày hiện tại sẽ được điền ở bên trái một cột của cột B. Nếu bạn muốn ngày hiện tại được điền vào cột C, vui lòng thay đổi -1 thành 1.

3. nhấn Khác + Q cùng một lúc để đóng Microsoft Visual Basic cho các ứng dụng cửa sổ.

Kể từ bây giờ, khi cập nhật các ô trong cột B, ô liền kề trong cột A sẽ được điền ngày hiện tại ngay lập tức. Xem ảnh chụp màn hình:


Các bài liên quan:


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 (46)
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ảm ơn. Điều này đã giúp rất nhiều. Nhưng khi tôi xóa một hàng hoặc thêm một hàng, điều này gây ra lỗi Thời gian chạy 13 Loại không khớp. Làm thế nào để giải quyết vấn đề này. Mong đợi một hoàn nguyên càng sớm càng tốt.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Jishnu thân mến,
Vấn đề bạn đề cập không xuất hiện trong trường hợp của tôi. Bạn vui lòng cung cấp phiên bản Office của mình?
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ó một bộ trang tính excel có tiêu đề thứ hai, thứ ba, thứ tư, v.v. Tôi cần đặt ngày bắt đầu vào thứ Hai trong ô a1 và điền vào các ngày tiếp theo từ thứ ba đến thứ sáu trong ô a1 trên mỗi trang tính đó. Tôi hoàn toàn không biết viết mã, vì vậy tôi chỉ cần biết công thức đơn giản mà tôi có thể đưa vào đó là gì. :) 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ân mến,
Bạn chỉ cần sử dụng công thức = thứ hai! A1 + 1 trên trang tính thứ ba, = thứ ba! A1 + 1 trên trang tính thứ tư, v.v.
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 này có thể được thực hiện trên một ô có chứa công thứ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
Tammy thân mến,
Mã đã được cập nhật. Nó có thể được thực hiện trên một ô có chứa công thức ngay bây giờ. 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
Cảm ơn nó hoạt động tốt, nhưng khi đóng và lưu, tôi gặp lỗi không thể lưu tính năng "Dự án VB" trong sổ làm việc không có macro. Xin hãy tư vấn
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 nó hoạt động tốt, nhưng khi đóng và lưu, tôi gặp lỗi không thể lưu tính năng "Dự án VB" trong sổ làm việc không có macro. Xin hãy tư vấ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 chỉ cần "lưu dưới dạng" một sổ làm việc hỗ trợ macro excel ....
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 có thể sử dụng chức năng này hai lần trên cùng một trang tính không? tức là nếu tôi muốn thực hiện các mục nhập trong cột B sang cột dấu thời gian A VÀ đưa các mục nhập trong cột D vào cột dấu thời gian C. 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
Tôi đã làm việc này bằng cách làm như sau:


Private Sub Worksheet_Change (ByVal Target As Excel.Range)
'Cập nhật Extendoffice 2017 / 10 / 12
Làm mờ xRg theo phạm vi, xCell theo phạm vi
On Error Resume Next
Nếu (Target.Count = 1) Thì
If (Not Application.Intersect (Target, Me.Range ("B: B")) Is Nothing) Then _
Target.Offset (0, -1) = Ngày
Application.EnableEvents = Sai
Đặt xRg = Application.Intersect (Target.Dependents, Me.Range ("B: B"))
Nếu (Không phải xRg Không có gì) Thì
Đối với mỗi xCell Trong xRg
xCell.Offset (0, -1) = Ngày
Sau
Cuối Nếu
Ứng dụng.EnableEvents = True
Cuối Nếu


On Error Resume Next
Nếu (Target.Count = 1) Thì
If (Not Application.Intersect (Target, Me.Range ("D: D")) Is Nothing) Then _
Target.Offset (0, -1) = Ngày
Application.EnableEvents = Sai
Đặt xRg = Application.Intersect (Target.Dependents, Me.Range ("D: D"))
Nếu (Không phải xRg Không có gì) Thì
Đối với mỗi xCell Trong xRg
xCell.Offset (0, -1) = Ngày
Sau
Cuối Nếu
Ứng dụng.EnableEvents = True
Cuối Nếu
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
Chào,

Có ai có thể đề xuất một mã khi tôi nhập số vào cột A và Cột B và trong Cột CI giữ một công thức như Cột A + Cột B. Bây giờ tôi cần một mã vba có thể cung cấp ngày và giờ trong Cột D bất cứ khi nào Cột C thay đổi không phải khi chèn số trong Cột A và B.
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,
Bất kỳ câu hỏi nào về Excel, vui lòng đăng trong diễn đàn của chúng tôi: https://www.extendoffice.com/forum.html.
Bạn sẽ nhận được nhiều hỗ trợ hơn về Excel từ chuyên gia Excel của chúng tôi.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
HI - mới đối với VBA - Tôi muốn lặp lại mã - Mã VBA: tự động điền ngày hiện tại vào một ô khi ô liền kề được cập nhật để sau khi ô được cập nhật ngày, sau đó chuyển sang nói "J: J" và cập nhật K với ngày tháng và sau đó thực hiện thêm 2 lần nữa. Bạn không chắc đó là vòng lặp hay for? 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
Đừng bận tâm ... Tôi đã thử phản hồi của John bên dưới và nó hoạt độ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
Tôi đã sử dụng mã này để tự động điền một cột và bây giờ tôi muốn tự động điền nhiều cột hơn dựa trên ngày được nhập vào cột H. Nói cách khác, khi một ngày được nhập, tôi có thể tự động điền các cột để thêm ngày 90, 60 và 30 ngày ra 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 Tracey,
Mã VBA sau có thể giúp bạn giải quyết vấn đề. Xin vui lòng có một thử.

Private Sub Worksheet_Change (ByVal Target As Excel.Range)
Làm mờ xRg theo phạm vi, xCell theo phạm vi
Dim xRgAddress dưới dạng chuỗi
xRgAddress = "H: H"
On Error Resume Next
Nếu (Target.count = 1) Thì
If (Not Application.Intersect (Target, Me.Range (xRgAddress)) Is Nothing) Thì
Target.Offset (0, 1) = Date + 90
Target.Offset (0, 2) = Date + 60
Target.Offset (0, 3) = Date + 30
Cuối Nếu
Application.EnableEvents = Sai
Đặt xRg = Application.Intersect (Target.Dependents, Me.Range (xRgAddress))
Nếu (Không phải xRg Không có gì) Thì
Đối với mỗi xCell Trong xRg
xCell.Offset (0, 1) = Ngày + 90
xCell.Offset (0, 2) = Ngày + 60
xCell.Offset (0, 3) = Ngày + 30
Sau
Cuối Nếu
Ứng dụng.EnableEvents = True
Cuối Nếu
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
Chào. Tôi đang cố gắng sử dụng "Tự động điền ngày hiện tại trong ô khi ô liền kề được cập nhật bằng mã VBA". Điều này hoạt động trên Trang tính 1, nhưng tôi có 11 trang tính khác mà tôi cần mã để làm việc trên. Xin hãy tư vấn. Tôi hoàn toàn không phải là VBA saavy nên tôi đánh giá cao bất kỳ sự trợ giúp nào mà tôi có thể nhận được!

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
Xin chào Gwen,
Vui lòng lặp lại các bước để sao chép mã sang các trang tính khác. Nó có thể tẻ nhạt, nhưng nó hoạt độ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, tôi cần một số giúp đỡ. Tôi đang cố gắng điền ngày hiện tại vào cột A nếu bất kỳ ô nào từ B đến N được sửa đổi. Sự bù đắp đang ném tôi đi. Mã này có thể được viết để tự động điền ngày vào Cột A một cách cụ thể 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
Hi Joe,
Mã VBA dưới đây có thể giúp bạn giải quyết vấn đề. Xin vui lòng có một thử và cảm ơn bạn đã nhận xét của bạn.

Private Sub Worksheet_Change (ByVal Target As Excel.Range)
'Cập nhật Extendoffice 20190924
Làm mờ xRg theo phạm vi, xCell theo phạm vi
Dim xInt dưới dạng số nguyên
On Error Resume Next
Nếu (Target.Count = 1) Thì
If (Not Application.Intersect (Target, Me.Range ("B: N")) Is Nothing) Thì
Application.EnableEvents = Sai
xInt = Target.Row
Me.Range ("A" & xInt) .Value = Ngày
Ứng dụng.EnableEvents = True
Cuối Nếu
Cuối Nếu
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, Tôi có thể đặt ngày và giờ để điề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
Xin chào Abbey,
Trong đoạn mã trên, vui lòng thay thế dòng này
"xCell.Offset (0, -1) = Ngày"
với
"xCell.Offset (0, -1) = Format (Now ()," yyyy-MM-dd hh: mm: ss ")".
Hy vọng tôi có thể giúp đỡ. 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
điều này đã không thêm thời gian vào ... có cách nào khá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
bạn phải thay đổi nó ở 2 nơi, nếu bạn thấy mã gốc, ngày tháng ở 2 nơi, hãy thay đổi cả hai bằng Format (Now (), "yyyy-MM-dd hh: mm: ss")
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ó cách nào để làm cho cột (A) tự động điền ngày khi nhập giá trị vào bất kỳ ô nào trong cùng một hàng 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 Harry,
Mã VBA dưới đây có thể giúp bạn giải quyết vấn đề. Vui lòng chỉ định phạm vi càng nhiều càng tốt trong mã. Cảm ơn bình luận của bạn.

Private Sub Worksheet_Change (ByVal Target As Excel.Range)
'Cập nhật Extendoffice 20191017
Làm mờ xRg theo phạm vi, xCell theo phạm vi
Dim xInt dưới dạng số nguyên
On Error Resume Next
Nếu (Target.Count = 1) Thì
If (Not Application.Intersect (Target, Me.Range ("B: BP")) Is Nothing) Thì
Application.EnableEvents = Sai
xInt = Target.Row
Me.Range ("A" & xInt) .Value = Ngày
Ứng dụng.EnableEvents = True
Cuối Nếu
Cuối Nếu
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 nghĩ rằng cũng cần phải có một thay đổi đối với dòng 7 ...
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Có ai biết có cách nào để tự động điền và khóa để ngăn người nhập thay đổi ngày không? Khi tôi khóa các ô và bảo vệ tài liệu thì các ô đó hoàn toàn không xuất hiệ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 không muốn nhập ngày nhưng một giá trị không đổi trong ô, ví dụ: một số hoặc một chuỗi văn bản. vui lòng đề xuất các thay đổi mã cho giống nhau.
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
Xin chào, Nếu bạn muốn nhập một số, vui lòng thay thế văn bản Ngày với con số trực tiếp trong mã. Để nhập một chuỗi văn bản, vui lòng thay thế văn bản Ngày trong mã với "chuỗi văn bản của bạn" (các dấu ngoặc kép được bao gồm).
Private Sub Worksheet_Change (ByVal Target As Excel.Range)
'Cập nhật Extendoffice 2020 / 09 / 28
Làm mờ xRg theo phạm vi, xCell theo phạm vi
On Error Resume Next
Nếu (Target.Count = 1) Thì
If (Not Application.Intersect (Target, Me.Range ("B: B")) Is Nothing) Then _
Target.Offset (0, -1) = "a text string" 'Hoặc nhập trực tiếp một số
Application.EnableEvents = Sai
Đặt xRg = Application.Intersect (Target.Dependents, Me.Range ("B: B"))
Nếu (Không phải xRg Không có gì) Thì
Đối với mỗi xCell Trong xRg
xCell.Offset (0, -1) = "a text string" 'Hoặc nhập trực tiếp một số
Sau
Cuối Nếu
Ứng dụng.EnableEvents = True
Cuối Nếu
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 đang nhập mã này vào sổ làm việc excel của mình và không có gì xảy ra. Bất cứ ai có thể xin vui lòng giúp đỡ? Tốt nhất, tôi muốn khi thứ gì đó được đưa vào cột A, thời gian sẽ được đưa vào cột B.
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 chapo, Hãy thử mã dưới đây. Hy vọng tôi có thể giúp đỡ. Private Sub Worksheet_Change (ByVal Target As Excel.Range)
'Cập nhật Extendoffice 2020 / 10 / 12
Làm mờ xRg theo phạm vi, xCell theo phạm vi
On Error Resume Next
Nếu (Target.Count = 1) Thì
If (Not Application.Intersect (Target, Me.Range ("A: A")) Is Nothing) Then _
Target.Offset (0, 1) = Thời gian
Application.EnableEvents = Sai
Đặt xRg = Application.Intersect (Target.Dependents, Me.Range ("A: A"))
Nếu (Không phải xRg Không có gì) Thì
Đối với mỗi xCell Trong xRg
xCell.Offset (0, 1) = Thời gian
Sau
Cuối Nếu
Ứng dụng.EnableEvents = True
Cuối Nếu
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, tôi đang sử dụng mã của bạn làm tài liệu tham khảo. Em muốn hỏi là có được như vậy không ạ: 1. Ngăn chặn các mục nhập ngày trùng lặp 2. Có 2 đầu vào macro cùng một lúc: Target.Offset (0, -1), Target, Offset (0,1) 3. Có thể tự động chèn hình ảnh vào ô không?
Tôi đã cố gắng tự tìm ra nó nhưng tôi dường như không thể tìm thấy bất kỳ tài nguyên trực tuyến nào có thể giúp tôi
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ông thức này hoạt động tuyệt vời. Tuy nhiên, có cách nào để thiết lập nó chỉ cập nhật ô trong cột A nếu nó trống 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 Matt, Xin lỗi, tôi không hiểu ý bạn lắm. Bạn có thể cố gắng trình bày cụ thể hơn về câu hỏi của mình hoặc cung cấp ảnh chụp màn hình về những gì bạn đang cố gắng thực hiện không?
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