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

Cum se introduce automat marcajul temporal când datele sunt actualizate într-o altă coloană din foaia Google?

Dacă aveți o gamă de celule și doriți să introduceți automat un timestamp în celula adiacentă atunci când datele sunt modificate sau actualizate într-o altă coloană. Cum ați putea rezolva această sarcină în foaia Google?

Introduceți automat marcajul temporal când datele sunt actualizate într-o altă coloană cu cod script


Introduceți automat marcajul temporal când datele sunt actualizate într-o altă coloană cu cod script

Următorul cod de script vă poate ajuta să finalizați rapid și ușor acest lucru, vă rugăm să faceți acest lucru:

1. Clic unelte > Editor de scripturi, vezi captura de ecran:

2. În fereastra proiectului deschis, vă rugăm să copiați și să lipiți codul scriptului de mai jos pentru a înlocui codul original, vedeți captura de ecran:

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")); 
    }
  }
}

notițe: În codul de mai sus, datele comenzii este numele foii pe care doriți să o utilizați, Data este antetul coloanei pe care doriți să îl inserați cu marcajul de timp și comandă este antetul coloanei pe care valorile celulei doriți să le actualizați. Vă rugăm să le schimbați în funcție de nevoile dvs.

3. Apoi salvați fereastra proiectului și introduceți un nume pentru acest nou proiect, vedeți captura de ecran:

4. Și apoi întoarceți-vă la foaie, acum, când datele din coloana Comandă sunt modificate, marcajul temporal actual este inserat automat în celula coloanei Date, care este adiacentă celulei modificate, a se vedea captura de ecran:


Cele mai bune instrumente de productivitate Office

Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%

  • reutilizarea: Introduceți rapid formule complexe, diagrame și orice ai folosit anterior; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
  • Merge celule / rânduri / coloane fără a pierde date; Conținut de celule divizate; Combinați rânduri / coloane duplicate... Prevenirea celulelor duplicate; Comparați gamele...
  • Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
  • Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
  • Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
  • Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
  • Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
  • Peste 300 de funcții puternice. Suportă Office / Excel 2007-2021 și 365. Acceptă toate limbile. Implementare ușoară în întreprinderea sau organizația dvs. Funcții complete Probă gratuită de 30 de zile. Garanție de returnare a banilor de 60 de zile.
fila kte 201905

Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
fundul officetab
Comentarii (62)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
poate fi modificat pentru a se aplica oricărei foi?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Trebuie să rulez funcția în editorul de script pentru ca aceasta să funcționeze? Continuă să primesc această eroare când o încerc: TypeError: Nu pot citi proprietatea „sursă” din nedefinit. (linia 3, fișier „Cod”)
Acest comentariu a fost redus la minimum de moderatorul de pe site
Hi there!
Am avut si eu problema asta. S-a ajuns să fie că mi-am redenumit fișierul în „date de comandă”, dar numele foii mele era încă „Foaia1” odată ce am redenumit foaia și nu registrul de lucru la „date de comandă”, totul a funcționat.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua, mulțumesc pentru cod, a funcționat perfect pentru ceea ce aveam nevoie. Cu toate acestea, aș avea nevoie de ajutorul tău pentru a ști cum să adaug o condiție pentru ca această dată să apară.
De fapt, aș dori să am această dată doar când sunt introduse numere și nimic altceva.
Știți ce ar trebui să adaug la cod pentru asta?
Nu sunt deloc un programator, doar un copy paster, de aceea am nevoie de ajutor și nu pot să-mi dau seama singură.
multumesc deja mult pentru ajutor

înceta
Acest comentariu a fost redus la minimum de moderatorul de pe site
De asemenea, aș dori să știu cum să blochez acea celulă după ce informațiile sunt introduse în celula anterioară.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am aceeași întrebare
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut. Multumesc pentru solutie. Am un fișier partajat și aș dori ca timpul să fie reflectat atunci când cineva editează foaia. În prezent, acest lucru funcționează numai atunci când editez foaia. Cum să fac asta? Mulțumesc anticipat :)
Acest comentariu a fost redus la minimum de moderatorul de pe site
Îmi place acest scenariu. Cum fac acest lucru doar la Ora de imprimare în loc de DATE? De asta am nevoie
Acest comentariu a fost redus la minimum de moderatorul de pe site
Schimbați ultima linie în sheet.getRange(rowIndex, dateCol).setValue(new Date());
Aceasta va returna o dată și oră, dar puteți afișa numai ora dacă doriți din Format -> Număr -> Ora
Acest comentariu a fost redus la minimum de moderatorul de pe site
Buna,

De asemenea, puteți aplica următorul cod, dar ar trebui să schimbați fusul orar în al dvs. Vă rugăm să încercați.

funcția onEdit(e)
{
var sheet = e.source.getActiveSheet();
if (sheet.getName() == "date de comandă") //"date de comandă" este numele foii în care doriți să rulați acest 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("Data") + 1;
var orderCol = headers[0].indexOf("Comanda") + 1;
if (dateCol > 0 && rowIndex > 1 && editColumn == orderCol)
{
sheet.getRange(rowIndex, dateCol).setValue(Utilities.formatDate(new Date(), "GMT+8:00", "HH:mm:ss"));
}
}
}
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cum fac să aibă atât Ora, cât și Data?


Multumesc.


Îra
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut, Scott,

Pentru ca coloana să aibă atât data, cât și ora, ar trebui să aplicați următorul cod de script. După introducerea codului, apoi selectați coloana în care doriți să introduceți data și ora, apoi faceți clic pe Format > Număr > Data oră pentru a formata celulele ca formatare dată și oră.

funcția onEdit(e)
{
var sheet = e.source.getActiveSheet();
if (sheet.getName() == "date de comandă") //"date de comandă" este numele foii în care doriți să rulați acest 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("Data") + 1;
var orderCol = headers[0].indexOf("Comanda") + 1;
if (dateCol > 0 && rowIndex > 1 && editColumn == orderCol)
{
sheet.getRange(rowIndex, dateCol).setValue(new Date());
}
}
}

Vă rugăm să încercați, sper că vă poate ajuta!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Puteți adăuga pur și simplu hh:mm:ss după data din rândul 14 al codului (copiat mai jos). Notă: a trebuit să schimb UTC+8 în GMT-5 pentru ca acesta să ștampileze ora corectă pentru US Eastern.

sheet.getRange(rowIndex, dateCol).setValue(Utilities.formatDate(new Date(), "GMT-5", "MM-zz-aaaa hh:mm:ss"));
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumesc, funcționează
Acest comentariu a fost redus la minimum de moderatorul de pe site
Hi

Ma poti ajuta te rog? Trebuie să afișez ora Americii Centrale, am schimbat fusul orar la GTM-6, dar nu funcționează, încă îmi arată ora Pacificului, (6 ore distanță)

În ceea ce priveşte
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună,


Caut să fac echivalentul să obțin un marcaj de timp în coloana „data” ori de câte ori „Comanda” este actualizată, dar și ori de câte ori „Starea livrării” sau „Starea plății” este actualizată, de asemenea (formând titlul coloanei, dar sper înțelegi deriva mea).

Este posibil?


mulțumesc
Acest comentariu a fost redus la minimum de moderatorul de pe site
Primesc o eroare „TypeError: Nu pot citi proprietatea „sursă” de la nedefinit. (linia 3, fișier „Cod”). Trebuie să furnizez linkul foii în această linie?


Mulțumesc,


Ryan
Acest comentariu a fost redus la minimum de moderatorul de pe site
Da, la fel. Admin, pliss pentru a ajuta.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Utilizați funcția var sheet = SpreadsheetApp.getActiveSheet();
în schimb var sheet = e.source.getActiveSheet(); în linia 3.
Mi-a rezolvat problema.
Il folosesc asa
f
{
var sheet = SpreadsheetApp.getActiveSheet();
if (sheet.getName() == "Sheet1") //"Sheet1" este numele foii nu File name
{
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("Time Stamp") + 1;
var orderCol = headers[0].indexOf("Data Intrare") + 1;
if (dateCol > 0 && rowIndex > 1 && editColumn == orderCol)
{
sheet.getRange(rowIndex, dateCol).setValue(Utilities.formatDate(new Date(), "UTC+5.30", "MM-zz-aaaa HH:MM:SS")); //Îl folosesc și în India GMT 5.30+ cu Time
}
}
}
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumesc pentru acest cod, este exact ceea ce am nevoie. Singura problemă este că rulez un script care trimite unele date către foaia Google, dar marcajul de timp nu se declanșează pentru aceste date, doar atunci când editez celula manual. Vreun sfat?
Acest comentariu a fost redus la minimum de moderatorul de pe site
salut, am aceeasi problema, ati rezolvat-o?
Acest comentariu a fost redus la minimum de moderatorul de pe site
salut am o problema asemanatoare, ati rezolvat-o?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, mă confrunt cu o eroare TypeError: Nu pot citi proprietatea „sursă” din nedefinit. (linia 3, fișier „Cod”)
Capabil să ajute în acest sens
Acest comentariu a fost redus la minimum de moderatorul de pe site
La fel şi eu. Te rog ajuta-ma.
Acest comentariu a fost redus la minimum de moderatorul de pe site
aceeasi problema aici
Acest comentariu a fost redus la minimum de moderatorul de pe site
Hi
Am codul să funcționeze, mulțumesc!
Dacă aș dori să includ mai multe coloane, cum aș modifica codul?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Încerc să fac la fel, ai avut noroc să înțeleg asta?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Hei! Am acest cod „Lipsă } după corpul funcției. (linia 18, fișierul „Cod”)” Cum remediez această problemă? Mulțumesc foarte mult! Acest lucru este uimitor!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cum ar trebui modificat scriptul pentru a căuta modificări într-un interval contigu de coloane, mai degrabă decât într-o singură coloană? de exemplu, declanșați scriptul dacă există modificări în coloanele etichetate „Sumă”, „Categorie” și „Tip”, mai degrabă decât singura coloană etichetată „Comandă” din exemplul de script.
Acest comentariu a fost redus la minimum de moderatorul de pe site
O zi buna! Mă întreb doar dacă este posibil să adăugați un cod pentru ca marca temporală să dispară automat odată ce celula principală a fost șters. Multumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Hola, hice the steps that mentions but I appear o error: TypeError: No se poate leer the property "source" de undefined. (linia 3, archivo „Código”)
Acest comentariu a fost redus la minimum de moderatorul de pe site
O repar cu acest cod.


funcția onEdit() {
var sheet = SpreadsheetApp.getActiveSheet();
var capture = sheet.getActiveCell();
if (sheet.getName() == "Actualizări") //"Actualizări" este numele foii.
if(capture.getColumn() == 1 ) {
var add = capture.offset(0, 1); //"0" este linia de referință pentru celula actualizată, "0" aceeași linie, referința "1" la coloana "1" este 1 coloană la dreapta.
var data = data noua();
data = Utilities.formatDate(date, "GMT-03:00","dd/MM' 'HH:mm' '");
add.setValue(date);
}

}
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut Fabricio!

Pe 1 trebuie sa scriu coloana Data (unde vreau sa iau data) si pe 0 coloana unde scriu text?
Am nevoie de „” sau similar?

Multumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Jorge, nu, trebuie doar să scrieți numărul referitor la coloană, cum ar fi A = 1 , B = 2 .....
Acest comentariu a fost redus la minimum de moderatorul de pe site
Minunat! Mulțumiri
Acest comentariu a fost redus la minimum de moderatorul de pe site
Genial, excelente, es lo que estaba buscando, muchas gracias, saludos
Acest comentariu a fost redus la minimum de moderatorul de pe site
Există o modalitate de a face esto, dar că la data se introduce doar și se escribe o palabra specifică?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Totuși, cum urmăriți modificările pe mai multe coloane? Folosind exemplul dvs., cum editați scriptul pentru a urmări modificările atât în ​​coloanele „produs”, cât și în „comandă”?
Acest comentariu a fost redus la minimum de moderatorul de pe site
putem schimba acest lucru pentru a urmări modificările pe un anumit interval de coloană în loc de coloană? presupunând că coloana noastră care urmează să fie urmărită se află la mijlocul foii noastre?
Nu există comentarii postate aici încă
Încărcați mai
Lăsa comentarii
Postare ca invitat
×
Evaluează această postare:
0   Caractere
Locații sugerate

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL