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

Come inserire automaticamente il timestamp quando i dati vengono aggiornati in un'altra colonna nel foglio di Google?

Se si dispone di un intervallo di celle e si desidera inserire automaticamente un timestamp nella cella adiacente quando i dati vengono modificati o aggiornati in un'altra colonna. Come hai potuto risolvere questo compito nel foglio di Google?

Inserisci automaticamente il timestamp quando i dati vengono aggiornati in un'altra colonna con codice di script


Inserisci automaticamente il timestamp quando i dati vengono aggiornati in un'altra colonna con codice di script


Il seguente codice di script può aiutarti a completare questo lavoro rapidamente e facilmente, per favore fai come segue:

1. Clic Strumenti > Editor di script, vedi screenshot:

2. Nella finestra del progetto aperta, copia e incolla il codice dello script seguente per sostituire il codice originale, vedi screenshot:

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

Note:: Nel codice sopra, dati dell'ordine è il nome del foglio che desideri utilizzare, Data è l'intestazione della colonna in cui desideri inserire il timestamp e in quantitativi è l'intestazione della colonna con i valori delle celle che desideri vengano aggiornati. Si prega di modificarli secondo le proprie necessità.

3. Quindi salva la finestra del progetto e inserisci un nome per questo nuovo progetto, vedi screenshot:

4. E poi torna al foglio, ora, quando i dati nella colonna Ordine vengono modificati, il timestamp corrente viene inserito automaticamente nella cella della colonna Data che è adiacente alla cella modificata, vedi screenshot:


I migliori strumenti per la produttività in ufficio

Kutools per Excel risolve la maggior parte dei tuoi problemi e aumenta la tua produttività dell'80%

  • Riutilizzo: Inserisci rapidamente formule complesse, grafici e tutto ciò che hai usato prima; Crittografa celle con password; Crea mailing list e invia email ...
  • Bar Super Formula (modifica facilmente più righe di testo e formula); Layout di lettura (leggi e modifica facilmente un gran numero di celle); Incolla su intervallo filtrato...
  • Unisci celle / righe / colonne senza perdere dati; Contenuto delle celle divise; Combina righe / colonne duplicate... Impedisci celle duplicate; Confronta intervalli...
  • Seleziona Duplica o Unico Righe; Seleziona Righe vuote (tutte le celle sono vuote); Super Find e Fuzzy Find in molte cartelle di lavoro; Selezione casuale ...
  • Copia esatta Più celle senza modificare il riferimento della formula; Riferimenti di creazione automatica a più fogli; Inserisci punti elenco, Caselle di controllo e altro ...
  • Estrai testo, Aggiungi testo, Rimuovi per posizione, Rimuovi spazio; Creare e stampare totali parziali di paging; Converti contenuto e commenti tra celle...
  • Super filtro (salva e applica schemi di filtri ad altri fogli); Ordinamento avanzato per mese / settimana / giorno, frequenza e altro; Filtro speciale in grassetto, corsivo ...
  • Combina cartelle di lavoro e fogli di lavoro; Unisci tabelle in base a colonne chiave; Suddividi i dati in più fogli; Conversione in batch xls, xlsx e PDF...
  • Più di 300 potenti funzionalità. Supporta Office / Excel 2007-2019 e 365. Supporta tutte le lingue. Facile distribuzione nella tua azienda o organizzazione. Funzionalità complete Prova gratuita di 30 giorni. Garanzia di rimborso di 60 giorni.
scheda kte 201905

Scheda Office porta l'interfaccia a schede a Office e semplifica notevolmente il lavoro

  • Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede della stessa finestra, piuttosto che in nuove finestre.
  • Aumenta la produttività del 50% e riduce centinaia di clic del mouse ogni giorno!
fondo officetab
Commenti (62)
Ancora nessuna valutazione. Puoi essere il primo a votare!
Questo commento è stato fatto dal moderatore sul sito
può essere modificato per applicarsi a qualsiasi foglio?
Questo commento è stato fatto dal moderatore sul sito
Devo eseguire la funzione nell'editor di script per farlo funzionare? Continuo a ricevere questo errore quando lo provo: TypeError: Impossibile leggere la proprietà "source" da undefined. (riga 3, file "Codice")
Questo commento è stato fatto dal moderatore sul sito
Hi there!
Anche io ho avuto questo problema. Alla fine ho rinominato il mio file in "dati dell'ordine", ma il nome del mio foglio era ancora "Foglio1" una volta che ho rinominato il foglio e non la cartella di lavoro in "dati dell'ordine", tutto ha funzionato.
Questo commento è stato fatto dal moderatore sul sito
Ciao, grazie per il codice ha funzionato perfettamente per quello che mi serviva. Tuttavia avrei bisogno del tuo aiuto per sapere come aggiungere una condizione per la visualizzazione di questa data.
Infatti vorrei avere questa data solo quando si inseriscono i numeri e nient'altro.
Sai cosa dovrei aggiungere al codice per questo?
Non sono affatto un programmatore, solo un copiatore, ecco perché ho davvero bisogno di aiuto e non riesco a capirlo da solo.
grazie mille già per il tuo aiuto

cessare
Questo commento è stato fatto dal moderatore sul sito
Vorrei anche sapere come bloccare quella cella dopo che le informazioni sono state inserite nella cella precedente.
Questo commento è stato fatto dal moderatore sul sito
ho la stessa domanda
Questo commento è stato fatto dal moderatore sul sito
Ciao. Grazie per la soluzione. Ho un file condiviso e vorrei che il tempo si riflettesse quando qualcuno modifica il foglio. Attualmente, funziona solo quando modifico il foglio. Come lo faccio? Grazie in anticipo :)
Questo commento è stato fatto dal moderatore sul sito
Adoro questa sceneggiatura. Come posso ottenere questo solo su Print Time invece di DATE? Questo è ciò di cui ho bisogno
Questo commento è stato fatto dal moderatore sul sito
Cambia l'ultima riga in sheet.getRange(rowIndex, dateCol).setValue(new Date());
Questo restituirà una data e ora, ma puoi mostrare solo l'ora se lo desideri da Formato -> Numero -> Ora
Questo commento è stato fatto dal moderatore sul sito
Ciao,

puoi anche applicare il codice seguente, ma dovresti cambiare il fuso orario con il tuo. Per favore, provalo.

funzione suModifica(e)
{
foglio var = e.source.getActiveSheet();
if (sheet.getName() == "dati dell'ordine") //"dati dell'ordine" è il nome del foglio in cui si desidera eseguire questo 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("Ordine") + 1;
if (dateCol > 0 && rowIndex > 1 && editColumn == orderCol)
{
sheet.getRange(rowIndex, dateCol).setValue(Utilities.formatDate(new Date(), "GMT+8:00", "HH:mm:ss"));
}
}
}
Questo commento è stato fatto dal moderatore sul sito
Come faccio ad avere sia l'ora che la data?


Grazie.


Scott
Questo commento è stato fatto dal moderatore sul sito
Ciao, Scott,

Per fare in modo che la colonna contenga sia la data che l'ora, è necessario applicare il seguente codice di script. Dopo aver inserito il codice, quindi selezionare la colonna in cui si desidera inserire la data e l'ora, quindi fare clic su Formato > Numero > Data ora per formattare le celle come formattazione data e ora.

funzione suModifica(e)
{
foglio var = e.source.getActiveSheet();
if (sheet.getName() == "dati dell'ordine") //"dati dell'ordine" è il nome del foglio in cui si desidera eseguire questo 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("Ordine") + 1;
if (dateCol > 0 && rowIndex > 1 && editColumn == orderCol)
{
sheet.getRange(rowIndex, dateCol).setValue(new Date());
}
}
}

Per favore, provalo, spero che possa aiutarti!
Questo commento è stato fatto dal moderatore sul sito
Puoi semplicemente aggiungere hh:mm:ss dopo la data nella riga 14 del codice (copiato sotto). Nota: ho dovuto cambiare l'UTC+8 in GMT-5 per ottenere l'ora corretta per gli Stati Uniti orientali.

sheet.getRange(rowIndex, dateCol).setValue(Utilities.formatDate(new Date(), "GMT-5", "MM-gg-aaaa hh:mm:ss"));
Questo commento è stato fatto dal moderatore sul sito
Grazie, funziona
Questo commento è stato fatto dal moderatore sul sito
Hi

Mi potete aiutare per favore? Ho bisogno di visualizzare l'ora del Centro America, ho cambiato il fuso orario in GTM-6 ma non funziona, mi mostra ancora l'ora del Pacifico, (a 6 ore di distanza)

Saluti
Questo commento è stato fatto dal moderatore sul sito
Ciao,


Sto cercando di fare l'equivalente ottenere un timestamp nella colonna "data" ogni volta che l'"Ordine" viene aggiornato, ma anche ogni volta che viene aggiornato anche lo "Stato di consegna" o "Stato del pagamento" (componendo l'intestazione della colonna ma spero hai capito la mia direzione).

Questo è possibile?


Grazie
Questo commento è stato fatto dal moderatore sul sito
Ricevo un errore "TypeError: Impossibile leggere la proprietà" sorgente "da undefined. (riga 3, file "Codice"). Devo fornire il collegamento del foglio in questa riga?


Grazie,


Ryan
Questo commento è stato fatto dal moderatore sul sito
Sì, lo stesso. Amministratore, per favore aiutaci.
Questo commento è stato fatto dal moderatore sul sito
Usa la funzione var sheet = SpreadsheetApp.getActiveSheet();
invece var sheet = e.source.getActiveSheet(); nella riga 3.
Ha risolto il mio problema.
Lo sto usando così
f
{
foglio var = SpreadsheetApp.getActiveSheet();
if (sheet.getName() == "Sheet1") //"Sheet1" è il nome del foglio e non il nome del file
{
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("Inserimento data") + 1;
if (dateCol > 0 && rowIndex > 1 && editColumn == orderCol)
{
sheet.getRange(rowIndex, dateCol).setValue(Utilities.formatDate(new Date(), "UTC+5.30", "MM-gg-aaaa HH:MM:SS")); //Lo sto usando anche in India GMT 5.30+ con Time
}
}
}
Questo commento è stato fatto dal moderatore sul sito
Grazie per questo codice, è esattamente quello di cui ho bisogno. L'unico problema è che sto eseguendo uno script che invia alcuni dati al foglio di Google, ma il timestamp non si attiva per questi dati, solo quando modifico la cella manualmente. Qualche consiglio?
Questo commento è stato fatto dal moderatore sul sito
ciao, ho lo stesso problema, hai risolto?
Questo commento è stato fatto dal moderatore sul sito
ciao ho un problema simile, hai risolto?
Questo commento è stato fatto dal moderatore sul sito
Ciao, devo affrontare un errore TypeError: Impossibile leggere la proprietà "source" da undefined. (riga 3, file "Codice")
In grado di aiutare su questo
Questo commento è stato fatto dal moderatore sul sito
Lo stesso qui. Per favore aiuto.
Questo commento è stato fatto dal moderatore sul sito
stesso problema qui
Questo commento è stato fatto dal moderatore sul sito
Hi
Ho il codice funzionante, grazie!
Se volessi includere più colonne, come modificherei il codice?
Questo commento è stato fatto dal moderatore sul sito
Sto cercando di fare lo stesso, hai fortuna a capirlo?
Questo commento è stato fatto dal moderatore sul sito
Ehi! Ho ricevuto questo codice "Mancante } dopo il corpo della funzione. (riga 18, file "Codice")" Come posso risolvere questo problema? Grazie mille! Questo è fantastico!
Questo commento è stato fatto dal moderatore sul sito
Come dovrebbe essere modificato lo script per cercare le modifiche in un intervallo contiguo di colonne anziché in una singola colonna? ad esempio, attivare lo script se sono presenti modifiche nelle colonne etichettate "Importo", "Categoria" e "Tipo" anziché nella singola colonna denominata "Ordine" nello script di esempio.
Questo commento è stato fatto dal moderatore sul sito
Buona giornata! Mi chiedo solo se è possibile aggiungere un codice per far scomparire automaticamente il timestamp una volta che la cella principale è stata cancellata. Grazie!
Questo commento è stato fatto dal moderatore sul sito
Hola, hice los pasos que mencionas pero me aparece un error: TypeError: No se puede leer la propiedad "source" de undefined. (linea 3, archivio "Código")
Questo commento è stato fatto dal moderatore sul sito
Lo risolvo con questo codice.


funzione suModifica() {
foglio var = SpreadsheetApp.getActiveSheet();
var capture = sheet.getActiveCell();
if (sheet.getName() == "Aggiornamenti") //"Aggiornamenti" è il nome del foglio.
if(capture.getColumn() == 1 ) {
var add = capture.offset(0, 1); //"0" è la riga in riferimento alla cella aggiornata, ''0'' stessa riga, "1" il riferimento alla colonna "1" è 1 colonna a destra.
var data = nuova data();
data = Utilities.formatDate(data, "GMT-03:00","gg/MM' 'HH:mm' '");
add.setValue(dati);
}

}
Questo commento è stato fatto dal moderatore sul sito
Ciao Fabricio!

Sul 1 devo scrivere la colonna Data (dove voglio ottenere la data) e su 0 colonna dove scrivo il testo?
Ho bisogno di "" o simili?

Grazie!
Questo commento è stato fatto dal moderatore sul sito
Ciao Jorge, no, devi solo scrivere il numero referente nella colonna, come A = 1 , B = 2 .....
Questo commento è stato fatto dal moderatore sul sito
Eccezionale! Grazie
Questo commento è stato fatto dal moderatore sul sito
Geniale, eccellente, es lo que estaba buscando, muchas gracias, saludos
Questo commento è stato fatto dal moderatore sul sito
Esiste una manera de hacer esto pero que la fecha se introduzca sólo si see escribe una palabra específica?
Questo commento è stato fatto dal moderatore sul sito
Come si tengono traccia delle modifiche su più di una colonna? Utilizzando il tuo esempio, come modifichi lo script per tenere traccia delle modifiche nelle colonne "prodotto" e "ordine"?
Questo commento è stato fatto dal moderatore sul sito
possiamo cambiarlo per tenere traccia delle modifiche su un determinato intervallo di colonne anziché su colonne? supponendo che la nostra colonna da tracciare sia al centro del nostro foglio?
Non ci sono ancora commenti pubblicati qui
Carica Altre
Lasciate i vostri commenti
Pubblicazione come ospite
×
Valuta questo post:
0   Personaggi
Posizioni suggerite