1

Googleスプレッドシートで使用するGoogle Apps Scriptで機能を作成しました。関数は範囲を段階的に変換します。Google Apps Scriptの原子的に取り消し可能な機能

ユーザーがundoにしようとすると、その機能のステップの1つのみが取り消されます。

私はそれはとてもundo全部を取り消し使用して、アトミックを振る舞うしたいと思います。これを行う方法はありますか?既存

function onOpen() { 
    var spreadsheet = SpreadsheetApp.getActive(); 
    var menuItems = [{name: 'Run myFunction', functionName: 'myFunction'}]; 
    spreadsheet.addMenu('Stuff', menuItems); 
} 

function myFunction(range) { 
    range = range || SpreadsheetApp.getActiveRange(); 

    forRowInRange(range, replaceValues) ; // <= This should behave atomically! 
} 

function forRowInRange(range, fn) { 
    // ...split range into sub-ranges for each row... 
    // ...invoke fn on each sub-range... 
} 

function replaceValues(range) { 
    // ...replace 1s with Xs, and 0s with spaces 
} 

と望ましい行動アンドゥがクリックした後、初期状態に戻るのを私が好きな

|0|1|0| 
    - |1|0|1| Initial state 
/ |0|1|0| 
| 
|  | 
|  V 
| 
|  | |X| | 
|  |X| |X| After function is invoked 
|  | |X| | 
| 
|  | 
|  V 
| 
|  | |X| | 
|  |X| |X| After undo is pressed once 
|  |0|1|0| 
| 
|  | 
|  V 
| 
|  | |X| | 
|  |1|0|1| After undo is pressed twice 
|  |0|1|0| 
| 
|  | 
|  V 
| 
\ |0|1|0| 
-> |1|0|1| After undo is pressed three times (or ideally, ONCE) 
    |0|1|0| 

、代わりの:コンテキストについては

、コードスニペット3つ

答えて

2

元に戻す動作を制御することはできません。 Googleのシートには最初からこの問題がありましたが、それでもうまくいきません。

独自の元に戻すコマンドを記述する必要があり、元に戻すことはできません。

+0

これは残念です。ああ、答えに感謝! – bosticko

関連する問題