如何解决如何在 GOOGLE SHEET 中使用 Case Select 修改点:修改后的脚本:参考:
我正在尝试根据单元格 AA1 的值在工作表 1 的单元格 A4 中输入公式,但不起作用,如果单元格 AA1 为空白或 N/A 或 NEW,请帮助我,然后什么都不做。
function setFormulaspercase(){
var ss = SpreadsheetApp.getActive()
var cellcase = ("AA1");
var formulaCell = ("A4");
if (cellcase == 'A') {
SpreadsheetApp.getActiveSheet().getRange(formulaCell).setFormula("=QUERY(\'Sheet2\'!B4:U,SELECT B,G,C,H,L,O,J,D,S,T)");
if (cellcase == 'B') {
SpreadsheetApp.getActiveSheet().getRange(formulaCell).setFormula("=QUERY(\'Sheet2\'!B4:U,T)");
if (cellcase == 'C') {
SpreadsheetApp.getActiveSheet().getRange(formulaCell).setFormula("=QUERY(\'Sheet2\'!B4:U,T)");
根据田池脚本修改
function setFormulaspercase() {
var ss = SpreadsheetApp.getActive();
var sh2=ss.getSheetByName('Sheet2');
var cellcase = sh2.getRange("G1").getValue();
var formulaCell = "A4";
var range = ss.getSheetByName("sheet1").getRange(formulaCell);
if (cellcase == 'A') {
range.setFormula('=QUERY(\'Sheet2\'!B4:U,"SELECT B,T")');
} else if (cellcase == 'B') {
range.setFormula('=QUERY(\'Sheet2\'!B4:U,T")');
} else if (cellcase == 'C') {
range.setFormula('=QUERY(\'Sheet2\'!B4:U,T")');
}
}
解决方法
我相信你的目标如下。
- 您想通过检查活动工作表上单元格“AA1”的值,将公式放入“sheet1”上的单元格“A4”中。
修改点:
-
var cellcase = ("AA1")
是 a1Notation。这不是单元格“AA1”的值。 - 在您的情况下,需要修改 if 语句。
-
SpreadsheetApp.getActiveSheet()
的SpreadsheetApp.getActiveSheet().getRange(formulaCell)
可能不是“sheet1”。在这种情况下,可以使用getSheetByName
。并且,可以在 if 语句之外声明SpreadsheetApp.getActiveSheet().getRange(formulaCell)
。 - 在您的脚本中,需要修改公式。请用双引号将查询括起来。
当以上几点反映到你的脚本中时,它变成如下。
修改后的脚本:
function setFormulaspercase() {
var ss = SpreadsheetApp.getActive();
var cellcase = ss.getActiveSheet().getRange("AA1").getValue();
var formulaCell = "A4";
var range = ss.getSheetByName("sheet1").getRange(formulaCell);
if (cellcase == 'A') {
range.setFormula('=QUERY(\'Sheet2\'!B4:U,"SELECT B,G,C,H,L,O,J,D,S,T")');
} else if (cellcase == 'B') {
range.setFormula('=QUERY(\'Sheet2\'!B4:U,T")');
} else if (cellcase == 'C') {
range.setFormula('=QUERY(\'Sheet2\'!B4:U,T")');
}
}
参考:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。