我試圖在一個選項卡中填充單元格範圍,並使用從我的Google表單中的其他選項卡收集的特定值。但是,我無法爲它編寫正確的腳本。在一個選項卡中填充單元格,並從Google表格中的其他選項卡中收集特定值
這裏有一個更詳細的解釋:
我在谷歌文檔牀單幾個標籤,代表了一年中的一個月,即他們命名爲July 2017
,December 2016
等。另外我還有兩個名爲Graphs
和Blank
的選項卡。
其N6
單元格中的每個月標籤都具有這樣的值:Balance 33050,32 UAH
(該數字可能因標籤而異)。
我想要做的事:
我需要收集來自我所有的一個月標籤的N6
值,並填寫以下值到Graphs
標籤的A
列。然後,我需要從我收集的所有值中構建一個圖表。但現在的主要問題是正確收集值。
我試圖爲此編寫一個腳本,但似乎我做了一些不正確的事情。我對google腳本很陌生,所以也許我在這裏錯過了一些簡單的東西。
這裏是我的腳本:
var months = [
"january","february","march","april","may","june","july","august","september","october", "november","december"
];
var graphSheetName = 'Graphs';
var ss = SpreadsheetApp.getActiveSpreadsheet();
var graphSheet = ss.getSheetByName(graphSheetName);
// this function tells if the name of the tab refers to one of the month tabs.
function isMonthSheet(name) {
return matchInArray(name, months);
}
function matchInArray(string, expressions) {
var len = expressions.length,
i = 0;
for (; i < len; i++) {
if (string.toLowerCase().match(expressions[i])) {
return true;
}
}
return false;
}
// This function runs on every edit of the google sheets document.
// It should fill the cells in the `Graphs` tab.
function getMonthsTotals() {
var sheets = ss.getSheets(); // get all tabs
var values = [];
for (var i = 0; i < sheets.length; ++i) {
var sheet = sheets[i];
// if it is a month tab, collect the N6 value into the `values` array.
// "Balance 33050,32 UAH".slice(8,-4) --> "33050,32".
if (isMonthSheet(sheet.getName())) {
var value = sheet.getRange('N6').getValue().slice(8, -4);
values.push(value);
}
}
// fill the `Graphs` tab with the collected values into the `A` column.
var rangeStr = 'A1:A' + values.length;
graphSheet.getRange(rangeStr).setValues(values);
}
正如我已經上面說的,我是很新的Google表格的腳本,所以我不是很熟悉它的調試,以及,所以我的方法是使用toast
函數。因此,我不能提供有關腳本如何實際運行的很多信息。
我尋求建議和幫助如何糾正我的腳本,使其正確運行。
「看來,我做了什麼錯誤。」無助於診斷問題。結果與預期有什麼不同? – FTP