清除单元格的内容,然后设置新值

时间:2018-04-05 04:00:17

标签: google-apps-script google-sheets setvalue

我正在尝试清除单元格的内容,然后设置一个新值。我知道你会问“为什么不设置一个新值而不是先清除单元格?”,但我确实需要这样做。这就是我所拥有的

var ss = SpreadsheetApp.getActiveSheet();
var new = ss.getRange("G1");
new.clearContent();
new.setValue('|');  

问题是清理没有发生,我尝试了很多东西,但没有一个工作:S。有人知道我做错了什么吗?提前谢谢!

1 个答案:

答案 0 :(得分:2)

您不能new使用cellreserved。使用像getActiveSheet()这样的其他内容。此外,使用function test() { var ss = SpreadsheetApp.getActive().getSheetByName("SHEET NAME"); var cell = ss.getRange("G1"); cell.clearContent(); cell.setValue('|'); } 是危险的,因为它要求您实际选择该工作表。因此,如果您想修改" Sheet1"中的某些内容,但光标位于" Sheet2"中的某个单元格上,那么您将获得意外结果。相反,请明确指定要使用的工作表。

SpreadsheetApp.flush()

要证明此 首先清除单元格,您可以将Utilities.sleep()flush()结合使用。您需要使用flush()因为," Spreadsheet operations are sometimes bundled together to improve performance"。调用function test() { var ss = SpreadsheetApp.getActive().getSheetByName("SHEET NAME"); var cell = ss.getRange("G1"); cell.clearContent(); SpreadsheetApp.flush(); Utilities.sleep(10000); // You have 10 seconds to check that the cell has cleared cell.setValue('|'); } 将确保在继续执行脚本之前执行所有这些操作。

var colors=['.green', '.red', '.yellow','.green', '.red', '.yellow'];
            point: {
            events: {
                click: function (event) {
                    $('.layout').css('display', 'none');
                    $(colors[event.point.index]).css('display', 'block');
                }
            }
        }