如何用新的文本宏替换单元格谷歌工作表



试图创建一个按钮,将单元格A1-sheet1、单元格E1-sheet2和单元格E1 sheet3的内容替换为";Card_Id";。每个单元格包含不同的文本,我想将标题对齐,因为其中的数据是相同的。工作表中的数据和标题每天都会替换为更新的数据,因此如果要单击某个按钮,则所有标题都会对齐。

尝试使用这个,但没有成功:

var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('A1').activate();
spreadsheet.getCurrentCell().setValue('Card_Id');
spreadsheet.getRange('A2').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Checklist items'), true);
spreadsheet.getRange('E1').activate();
spreadsheet.getCurrentCell().setValue('Card_Id');
spreadsheet.getRange('E2').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Card Updates'), true);
spreadsheet.getCurrentCell().setValue('Card_Id');
spreadsheet.getRange('E2').activate();
};```

从您的脚本中,在第三个spreadsheet.getCurrentCell().setValue('Card_Id');A1〃;被激活。通过这种方式;卡更新";,该值被放入单元格";A1";。我想这可能是你问题的原因。

根据Trying to create a button to replace the contents of cell A1 - sheet1, cell E1 - sheet2 and cell E1 sheet3 with "Card_Id".和您的脚本,我认为您的sheet1sheet2sheet3可能分别是活动工作表Checklist itemsCard Updates。如果我的猜测是正确的,那么下面的修改怎么样?

修改的脚本:

当您的脚本被修改时,它变成如下。

var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('A1').activate();
spreadsheet.getCurrentCell().setValue('Card_Id');
spreadsheet.getRange('A2').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Checklist items'), true);
spreadsheet.getRange('E1').activate();
spreadsheet.getCurrentCell().setValue('Card_Id');
spreadsheet.getRange('E2').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Card Updates'), true);
spreadsheet.getRange('E1').activate(); // Modified
spreadsheet.getCurrentCell().setValue('Card_Id');

var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('A1').setValue('Card_Id');
spreadsheet.getRange("'Checklist items'!E1").setValue('Card_Id');
spreadsheet.getRange("'Card Updates'!E1").setValue('Card_Id');
  • 如果您想将按钮放在其他工作表上,可以通过设置第一个工作表名称使用以下脚本。

    var spreadsheet = SpreadsheetApp.getActive();
    spreadsheet.getRange("'Sheet1'!A1").setValue('Card_Id');
    spreadsheet.getRange("'Checklist items'!E1").setValue('Card_Id');
    spreadsheet.getRange("'Card Updates'!E1").setValue('Card_Id');
    
    • 在这种情况下,请将Sheet1中的第一个工作表名称替换为实际的工作表名称

参考文献:

类电子表格的getRange(a1Notation(
  • A1表示法
  • 最新更新