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つ。
これは残念です。ああ、答えに感謝! – bosticko