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

Làm cách nào để tự động chèn dấu thời gian khi dữ liệu được cập nhật trong một cột khác trong Google sheet?

Nếu bạn có một dải ô và bạn muốn tự động chèn dấu thời gian vào ô liền kề khi dữ liệu được sửa đổi hoặc cập nhật trong một cột khác. Làm cách nào bạn có thể giải quyết công việc này trong Google sheet?

Chèn dấu thời gian tự động khi dữ liệu được cập nhật trong một cột khác bằng mã tập lệnh


Chèn dấu thời gian tự động khi dữ liệu được cập nhật trong một cột khác bằng mã tập lệnh

Mã script sau có thể giúp bạn hoàn thành công việc này một cách nhanh chóng và dễ dàng, vui lòng thực hiện như sau:

1. Nhấp chuột CÔNG CỤ > Biên tập kịch bản, xem ảnh chụp màn hình:

2. Trong cửa sổ dự án đã mở, vui lòng sao chép và dán mã tập lệnh bên dưới để thay thế mã gốc, xem ảnh chụp màn hình:

function onEdit(e)
{ 
  var sheet = e.source.getActiveSheet();
  if (sheet.getName() == "order data") //"order data" is the name of the sheet where you want to run this script.
  {
    var actRng = sheet.getActiveRange();
    var editColumn = actRng.getColumn();
    var rowIndex = actRng.getRowIndex();
    var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues();
    var dateCol = headers[0].indexOf("Date") + 1;
    var orderCol = headers[0].indexOf("Order") + 1;
    if (dateCol > 0 && rowIndex > 1 && editColumn == orderCol) 
    { 
      sheet.getRange(rowIndex, dateCol).setValue(Utilities.formatDate(new Date(), "UTC+8", "MM-dd-yyyy")); 
    }
  }
}

Chú thích: Trong đoạn mã trên, dữ liệu đặt hàng là tên trang tính mà bạn muốn sử dụng, Ngày là tiêu đề cột mà bạn muốn chèn dấu thời gian và trật tự là tiêu đề cột mà giá trị ô bạn muốn được cập nhật. Vui lòng thay đổi chúng theo nhu cầu của bạn.

3. Sau đó lưu cửa sổ dự án và nhập tên cho dự án mới này, xem ảnh chụp màn hình:

4. Và sau đó quay lại trang tính, bây giờ, khi dữ liệu trong cột Thứ tự được sửa đổi, dấu thời gian hiện tại sẽ tự động được chèn vào ô của cột Ngày gần với ô đã sửa đổi, xem ảnh chụp màn hình:


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 (62)
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
Điều này có thể được sửa đổi để áp dụng cho bất kỳ trang tính nào 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
Tôi có cần chạy chức năng trong trình chỉnh sửa tập lệnh để tính năng này hoạt động không? Tôi tiếp tục gặp lỗi này khi tôi thử nó: TypeError: Không thể đọc thuộc tính "nguồn" từ không xác định. (dòng 3, tệp "Mã")
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Hi there!
Tôi cũng có vấn đề này. Kết quả là tôi đã đổi tên tệp của mình thành "dữ liệu đặt hàng", nhưng tên trang tính của tôi vẫn là "Trang tính1" sau khi tôi đổi tên trang tính chứ không phải sổ làm việc để "đặt hàng dữ liệu". Mọi thứ đều 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, cảm ơn vì mã nó hoạt động hoàn hảo cho những gì tôi cần. Tuy nhiên, tôi cần sự giúp đỡ của bạn để biết cách thêm một điều kiện để ngày này xuất hiện.
Trên thực tế, tôi chỉ muốn có ngày này khi các con số được chèn vào và không có gì khác.
Bạn có biết những gì tôi nên thêm vào mã cho điều đó?
Tôi hoàn toàn không phải là một lập trình viên, chỉ là một copy paster, đây là lý do tại sao tôi thực sự cần sự giúp đỡ và không thể tự mình tìm ra được.
cảm ơn rất nhiều vì sự giúp đỡ của bạn

thôi
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ũng muốn biết cách khóa ô đó sau khi thông tin được chèn vào ô trước đó.
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 câu hỏi
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ảm ơn vì giải pháp. Tôi có một tệp được chia sẻ và tôi muốn thời gian được phản ánh khi bất kỳ ai chỉnh sửa trang tính. Hiện tại, tính năng này chỉ hoạt động khi tôi chỉnh sửa trang tính. Làm thế nào để làm điều đó? Cảm ơn trước :)
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ích kịch bản này. Làm cách nào để tôi chỉ đưa thông tin này vào Thời gian in thay vì DATE? Đó là những gì tôi cần
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Thay đổi dòng cuối cùng thành sheet.getRange (rowIndex, dateCol) .setValue (new Date ());
Thao tác này sẽ trả về ngày giờ, nhưng bạn chỉ có thể hiển thị thời gian nếu bạn muốn từ Định dạng -> Số -> Giờ
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,

bạn cũng có thể áp dụng mã sau, nhưng, bạn nên thay đổi múi giờ theo múi giờ của riêng mình. Hãy thử nó.

chức năng onEdit (e)
{
var sheet = e.source.getActiveSheet ();
if (sheet.getName () == "order data") // "order data" là tên của sheet mà bạn muốn chạy script này.
{
var actRng = sheet.getActiveRange ();
var editColumn = actRng.getColumn ();
var rowIndex = actRng.getRowIndex ();
var headers = sheet.getRange (1, 1, 1, sheet.getLastColumn ()). getValues ​​();
var dateCol = headers [0] .indexOf ("Ngày") + 1;
var orderCol = headers [0] .indexOf ("Đơn hàng") + 1;
if (dateCol> 0 && rowIndex> 1 && editColumn == orderCol)
{
sheet.getRange (rowIndex, dateCol) .setValue (Utilities.formatDate (new Date (), "GMT + 8: 00", "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
Làm cách nào để làm cho nó có cả Thời gian và Ngày tháng?


Cảm ơn.


Scott
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, Scott,

Để làm cho cột có cả ngày và giờ, bạn nên áp dụng mã tập lệnh sau. Sau khi chèn mã, rồi chọn cột bạn muốn chèn ngày và giờ, sau đó bấm Định dạng> Số> Ngày giờ để định dạng các ô dưới dạng định dạng ngày giờ.

chức năng onEdit (e)
{
var sheet = e.source.getActiveSheet ();
if (sheet.getName () == "order data") // "order data" là tên của sheet mà bạn muốn chạy script này.
{
var actRng = sheet.getActiveRange ();
var editColumn = actRng.getColumn ();
var rowIndex = actRng.getRowIndex ();
var headers = sheet.getRange (1, 1, 1, sheet.getLastColumn ()). getValues ​​();
var dateCol = headers [0] .indexOf ("Ngày") + 1;
var orderCol = headers [0] .indexOf ("Đơn hàng") + 1;
if (dateCol> 0 && rowIndex> 1 && editColumn == orderCol)
{
sheet.getRange (rowIndex, dateCol) .setValue (new Date ());
}
}
}

Hãy thử nó, hy vọng nó có thể giúp 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 chỉ cần thêm hh: mm: ss sau ngày ở dòng 14 của mã (được sao chép bên dưới). Lưu ý: Tôi đã phải thay đổi UTC + 8 thành GMT-5 để đóng dấu đúng giờ cho Miền Đông Hoa Kỳ.

sheet.getRange (rowIndex, dateCol) .setValue (Utilities.formatDate (new Date (), "GMT-5", "MM-dd-yyyy 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
Cảm ơn bạn, 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
Hi

Bạn co thể giup tôi được không? Tôi cần hiển thị giờ Trung Mỹ, tôi đã thay đổi múi giờ thành GTM-6 nhưng nó không hoạt động, nó vẫn hiển thị cho tôi giờ Thái Bình Dương, (cách nhau 6 giờ)

Trân trọ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 đang tìm cách tương tự lấy dấu thời gian trong cột "ngày" bất cứ khi nào "Đơn đặt hàng" được cập nhật, nhưng cũng có thể bất cứ khi nào "Trạng thái giao hàng" hoặc "Trạng thái thanh toán" cũng được cập nhật (tạo tiêu đề cột nhưng tôi hy vọng bạn hiểu được sự trôi dạt của tôi).

Điều này có thể không?


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 gặp lỗi "TypeError: Không thể đọc thuộc tính" nguồn "từ không xác định. (Dòng 3, tệp" Mã "). Tôi có phải cung cấp liên kết của trang tính trong dòng này không?


cảm ơn,


Ryan
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Đúng vậy. Quản trị viên, xin vui lòng 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
Sử dụng hàm var sheet = SpreadsheetApp.getActiveSheet ();
thay vào đó var sheet = e.source.getActiveSheet (); trong Dòng 3.
Nó đã giải quyết được vấn đề của tôi.
Tôi đang sử dụng nó như thế này
f
{
var sheet = SpreadsheetApp.getActiveSheet ();
if (sheet.getName () == "Sheet1") // "Sheet1" là tên của trang tính không phải là Tên tệp
{
var actRng = sheet.getActiveRange ();
var editColumn = actRng.getColumn ();
var rowIndex = actRng.getRowIndex ();
var headers = sheet.getRange (1, 1, 1, sheet.getLastColumn ()). getValues ​​();
var dateCol = headers [0] .indexOf ("Dấu thời gian") + 1;
var orderCol = headers [0] .indexOf ("Ngày nhập") + 1;
if (dateCol> 0 && rowIndex> 1 && editColumn == orderCol)
{
sheet.getRange (rowIndex, dateCol) .setValue (Utilities.formatDate (new Date (), "UTC + 5.30", "MM-dd-yyyy HH: MM: SS")); // Tôi đang sử dụng nó ở Ấn Độ GMT 5.30+ cùng với Giờ
}
}
}
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 vì mã này, nó chính xác là thứ tôi cần. Vấn đề duy nhất là tôi đang chạy một tập lệnh gửi một số dữ liệu đến trang tính của Google, nhưng tem thời gian không kích hoạt cho dữ liệu này, chỉ khi tôi chỉnh sửa ô theo cách thủ công. Có lời khuyên nào 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, tôi có cùng một vấn đề, bạn đã giải quyết 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 tôi có một vấn đề tương tự, bạn đã giải quyết 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, tôi gặp phải lỗi TypeError: Không thể đọc thuộc tính "nguồn" từ không xác định. (dòng 3, tệp "Mã")
Có thể giúp đỡ về đ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
Ở đây cũng vậy. Hãy 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
vấn đề tương tự ở đây
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Hi
Tôi đã nhận được mã hoạt động, cảm ơn!
Nếu tôi muốn bao gồm nhiều cột, tôi sẽ thay đổi mã như thế 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
Tôi đang cố gắng làm điều tương tự, có may mắn nào tìm ra điều này 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! Tôi nhận được mã này "Thiếu} sau nội dung hàm. (Dòng 18, tệp" Mã ")" Làm cách nào để khắc phục sự cố này? Cảm ơn bạn rất nhiều! Thật đáng kinh ngạc!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tập lệnh nên được sửa đổi như thế nào để tìm kiếm những thay đổi trong phạm vi cột liền kề thay vì một cột duy nhất? ví dụ: kích hoạt tập lệnh nếu có các thay đổi trong các cột được gắn nhãn, "Số lượng", "Danh mục" và "Loại" thay vì cột đơn có nhãn "Thứ tự" trong tập lệnh ví dụ.
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! Tôi chỉ tự hỏi liệu có thể thêm mã để dấu thời gian tự động biến mất sau khi ô chính đã được xóa hay không. 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
Hola, hice los pasos que mencionas pero me aparece un error: TypeError: No se puede leer la propiedad "source" de undefined. (línea 3, archivo "Código")
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ửa nó với mã này.


function onEdit () {
var sheet = SpreadsheetApp.getActiveSheet ();
var capture = sheet.getActiveCell ();
if (sheet.getName () == "Updates") // "Updates" là tên trang tính.
if (capture.getColumn () == 1) {
var add = capture.offset (0, 1); // "0" là dòng trong tham chiếu ô được cập nhật, '' 0 '' cùng dòng, tham chiếu "1" tại cột "1" là 1 cột bên phải.
var data = new Date ();
data = Utilities.formatDate (data, "GMT-03: 00", "dd / MM '' HH: mm ''");
add.setValue (dữ liệu);
}

}
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 Fabricio!

Trên 1 tôi phải viết cột Ngày (nơi tôi muốn lấy ngày tháng) và trên cột 0, nơi tôi viết văn bản?
Tôi có cần "" hoặc tương tự không?

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 Jorge, không, bạn chỉ cần viết số tham chiếu vào cột, như A = 1, B = 2 .....
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tuyệt vời! 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
Genial, excelente, es lo que settinga buscando, muchas gracias, saludos
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tồn tại una Mađra de hacer esto pero que la fecha se giới thiệu sólo si se escribe una palabra específica?
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 để bạn theo dõi các thay đổi trên nhiều cột? Sử dụng ví dụ của bạn, làm cách nào để bạn chỉnh sửa tập lệnh để theo dõi các thay đổi trong cả cột "sản phẩm" và "đơn đặt 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
chúng ta có thể thay đổi điều này để theo dõi các thay đổi trên phạm vi cột nhất định thay vì cột không? giả sử rằng cột cần theo dõi của chúng tôi nằm ở giữa trang tính của chúng tôi?
Không có bình luận nào được đăng ở đây
Tải thêm

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