【问题标题】:how is a sheet name referenced in google app script macro?谷歌应用脚​​本宏中如何引用工作表名称?
【发布时间】:2021-09-13 04:49:12
【问题描述】:

在谷歌应用程序脚本中,我想要一个宏将数据从一个工作表('source')复制到另一个工作表('dest1')。 我想在宏中命名工作表。

var spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
var source = spreadSheet.getSheetByName('source');
var dest1 = spreadSheet.getSheetByName('dest1');

function copy_source_to_dest1() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('A1:E70').activate();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('dest1'), true);
  spreadsheet.getRange('A1').activate();
  spreadsheet.getRange('source!A1:E70').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false);
};

【问题讨论】:

标签: google-apps-script google-sheets


【解决方案1】:

我认为您很难使用您的两个变量?如果是这样...您可能会考虑此修改后的代码。如果您想重命名工作表,我也提供了一个示例。 Here's a sample sheet 说明结果。

/**
 * @OnlyCurrentDoc
 */
function copy_source_to_dest1() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const source = ss.getSheetByName('source');
  const dest1 = ss.getSheetByName('dest1');
  const pullRange = source.getRange('A1:E70');

  //pickyour copy paste type by removing slashes to uncomment them.
  //pullRange.copyTo(dest1.getRange("A1"), SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false);
  //pullRange.copyTo(dest1.getRange("A1"), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  //pullRange.copyTo(dest1.getRange("A1"), SpreadsheetApp.CopyPasteType.PASTE_FORMULA, false);


  //example of renaming a sheet?
  //dest1.setName("newName")
}

【讨论】:

  • psSystemTester,谢谢。我试过你的回答功能,但没有数据进入工作表'dest1'。您的测试表在“dest1”表中也没有显示任何数据。
  • 呃。是的....那是因为您在原始代码中将其设置为Paste_FORMAT。你想做什么?我将使用其他几个选项(例如粘贴公式、值)来更新我的答案。假设可行,请不要忘记接受答案。
  • 是的,成功了,谢谢。我明白了你所说的,现在我的知识更好了,再次感谢。
  • @MikeT 太棒了。很高兴它奏效了。祝你好运。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多