2015-04-29 17 views
7

Google Spreadsheet non ha la funzionalità per "inserire celle tagliate" come in Excel.Foglio di calcolo Google - Inserisci celle/righe tagliate/copiate

Diciamo che ho selezionato A4 a B5, premere Ctrl + X.
Quindi ho spostato la selezione su A2.
Ora voglio "inserire celle tagliate", probabilmente inserendo celle vuote e moving l'intervallo tratteggiato su A2.
screenshot

Esiste un modo per farlo utilizzando JavaScript sul your own menu?

es.

function insertCutOrCopiedCells(){ 
    var SS = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = SS.getActiveSheet(); 
    var cell = sheet.getActiveCell(); 

    // How do you get the cells being cut/copied? (ie. A4 to B5) 

    // We can then insert empty cells (2 cols 2 rows) at the selection (A2) 
    // and move the cut cells (A4 to B5) there 
} 
+0

script di Apps non può ascoltare la tastiera né controllare la clipboard. – Kriggs

+0

Sì, ma non solo negli appunti. È contrassegnato con un bordo punteggiato sul foglio. Quindi mi stavo chiedendo se ci fosse un modo per ottenere quell'intervallo. – Aximili

+5

Google Sheets deve poter spostare righe (o colonne), l'equivalente di taglio e inserimento. Seleziona le * righe * complete, sposta il cursore sulla riga ** numero **, il cursore si trasforma in una mano e trascina. –

risposta

0

Penso che sia possibile separare la funzione.

Copia: utilizzare getRange con getValue: link =>https://developers.google.com/apps-script/reference/spreadsheet/sheet

dati Delete: utilizzare il getRange con setValue = vuoto

esempio:

var Spreadsheet= 
SpreadsheetApp.openById(SPREADSHEET_ID).getSheetByName("number1"); 
var value = Spreadsheet.getRange(1,0).getValue(); // copy 
Spreadsheet.getRange(1,1).setValues(value); // insert 
Spreadsheet.getRange(1,0).setValues(""); 

È possibile utilizzare il meto copyTo

esempio:

var sheet = SpreadsheetApp.getActiveSheet(); 
sheet.getRange("A:E").copyTo(sheet.getRange("F1"), {contentsOnly:true}); 
} 
+0

Grazie Hann. Ma come fai a tagliare/copiare l'intervallo selezionato? Si prega di consultare la domanda aggiornata Ho aggiunto un esempio. – Aximili

0

Hai entrambi i metodi, controlla nella classe Range.

moveTo(target)

Tagliare e incollare (sia formato e valori) da questo intervallo nel campo di destinazione.

copyTo(destination)

Copia i dati provenienti da una serie di celle a un altro intervallo di celle. Entrambi i valori e la formattazione vengono copiati.

Edit:

Per completare la funzione dovrete usare anche:

insertRowsAfter(afterPosition, howMany) in classe foglio di calcolo

Inserisce un numero di righe dopo la data posizione fila.

e

getActiveRange() con getRow() per verificare dov'è la selezione in:

restituisce l'intervallo di celle che è attualmente considerato attivo.Questo generalmente indica l'intervallo che un utente ha selezionato nel foglio attivo, ma in una funzione personalizzata fa riferimento alla cella ricalcolata attivamente.

Dal momento che non si ha acess direttamente negli appunti, si dovrà impostare una barra laterale, o un modelessDialog, che chiede per una gamma di copiare da, e sarebbe incollare nella zona selezionata, o viceversa, incollare l'area selezionata corrente su una riga di input.

+0

Grazie Kriggs. Penso che il problema sia ancora: come fai a tagliare le cellule? Ho aggiunto un esempio sopra. Grazie! – Aximili

10

Per ottenere la funzione di inserimento delle celle di taglio nei fogli di google è sufficiente utilizzare il trascinamento della selezione. Per prima cosa evidenzia la riga o le righe che vuoi spostare, quindi passa il mouse sul numero di riga (vedrai l'icona della mano ); quindi, tenendo premuto il tasto sinistro del mouse e mantenendo il mouse sui numeri di riga, verrà visualizzata una linea scura in cui verrà inserito l'inserto. Lascia andare il pulsante del mouse e voilà.

enter image description here

+1

@TT Tenere premuto CTRL prima del rilascio, fare clic con il tasto sinistro su – Enora

+0

@Enora, Wow. Grazie per avermi fatto dare una seconda occhiata a questo. ** Tenendo premuto CTRL e trascinando la selezione ** funziona! Ho anche riletto questa risposta e ho trovato che funziona bene - la chiave è ** prendere la selezione dall'area della riga **. Grazie! –

+0

@TT a proposito, tenendo premuto CTRL funziona ovunque: provalo in un editor di testo come Blocco note, o in Esplora file per copiare un file/cartella – Enora