我已经研究/研究了几天,并且接近了,但是需要添加自动化元素,我当前的脚本不适合最终目标。
我需要:
如果我将URL单元(在这种情况下为B28包含URL)存储为脚本中的变量,则它不再变得可读。 EG:
var SPREADSHEET_URL_REFERENCE_SOURCE_SHEET = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Calc Generator");
var SPREADSHEET_URL_REFERENCE_SOURCE_RANGE = SPREADSHEET_URL_REFERENCE_SOURCE_SHEET.getRange("B28");
var SPREADSHEET_URL_VALUE = SPREADSHEET_URL_REFERENCE_SOURCE_RANGE.getValues();
此后,我的脚本无法再获取URL。任何帮助将不胜感激,在这一点上我有点雪盲了!
答案 0 :(得分:0)
更改此行:
var SPREADSHEET_URL_VALUE = SPREADSHEET_URL_REFERENCE_SOURCE_RANGE.getValues();
对此
var SPREADSHEET_URL_VALUE = SPREADSHEET_URL_REFERENCE_SOURCE_RANGE.getValue();
换句话说,在末尾删除s。如果不这样做,那么所需的值将变为SPREADSHEET_URL_VALUE[0][0]
,尽管它只是一个单元格,但仍然是一个二维数组。
答案 1 :(得分:0)
我想我已经弄明白了。它将从您自己的特定工作表上的单元格中获取外部工作表的URL,然后将外部工作表拉到您的外部工作表中,并为其创建新的选项卡副本。
正如Cooper所说,设置getValue很有帮助,但是随后我可以使用openByURL并指向我的链接变量来抓取它,这可以抓取特定的外部工作表标签。
谢谢您的帮助!
function copySheettest()
{
//
var SPREADSHEET_URL_REFERENCE_SOURCE_SHEET = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("[MASTER] Calc Generator");
var SPREADSHEET_URL_REFERENCE_SOURCE_RANGE = SPREADSHEET_URL_REFERENCE_SOURCE_SHEET.getRange("B28");
var SPREADSHEET_URL_VALUE = SPREADSHEET_URL_REFERENCE_SOURCE_RANGE.getValue();
Logger.log(SPREADSHEET_URL_REFERENCE_SOURCE_RANGE);
var sourceSheet = SpreadsheetApp.openByUrl(SPREADSHEET_URL_VALUE);
var source_sheet = sourceSheet.getSheetByName("Info Calculations");
var target = SpreadsheetApp.getActiveSpreadsheet();
var target_sheet = target.getSheetByName("target_sheet");
var source_range = source_sheet.getRange("A1:AA69");
var target_range = target_sheet.getRange("A1:AA69");
//
var values = source_range.getValues();
var bGcolors = source_range.getBackgrounds();
var colors = source_range.getFontColors();
var fontSizes = source_range.getFontSizes();
// make use of autocomplete to find other methods...
target_range.setValues(values);
target_range.setBackgrounds(bGcolors);
target_range.setFontColors(colors);
target_range.setFontSizes(fontSizes);
}