我有一张包含3张不同表单的Google电子表格,您可以看到here。
我想要做的是每个人中的每个人'表格,在“stacs”中创建一行人物。根据“餐食”数量重复多次的床单。我们在用餐中吃过饭。片。所以,每个人,我想在第1行创建personA + meal1,在第2行创建personA + meal2,在第3行创建personA + meal3等等。
我想通了一遍又一遍地重复相同的代码。代码有效,但效率很低。我想必须有一种方法可以用更清洁,更简单的方式做同样的重复。我正在学习如何使用某些脚本来改进我的电子表格,因此非常欢迎任何帮助!
一些注意事项:
以下是您在电子表格中找到的代码:
function copyValuesA() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("names");
var name = sheet.getRange("A2");
var sheetMeals = ss.getSheetByName("meals");
var rangeMeals = sheet.getRange("mealsNames");
var sheetstacs = ss.getSheetByName("stacs");
var lastRow = sheetstacs.getRange("B1").getValue();
var mealCount = sheetstacs.getRange("D1").getValue();
var lastRowMeals = sheetstacs.getRange("C1").getValue();
var rangeOrigname01 = sheetstacs.getRange("A" + lastRow + ":A" + mealCount);
var rangeOrigname02 = sheetstacs.getRange("A1");
name.copyTo(rangeOrigname01);
var rangeDestMeals01 = sheetstacs.getRange("B" + lastRowMeals);
rangeMeals.copyTo(rangeDestMeals01);
}
function copyValuesB() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("names");
var name = sheet.getRange("A3");
var sheetMeals = ss.getSheetByName("meals");
var rangeMeals = sheet.getRange("mealsNames");
var sheetstacs = ss.getSheetByName("stacs");
var lastRow = sheetstacs.getRange("B1").getValue();
var mealCount = sheetstacs.getRange("D1").getValue();
var lastRowMeals = sheetstacs.getRange("C1").getValue();
var rangeOrigname01 = sheetstacs.getRange("A" + lastRow + ":A" + mealCount);
var rangeOrigname02 = sheetstacs.getRange("A1");
name.copyTo(rangeOrigname01);
var rangeDestMeals01 = sheetstacs.getRange("B" + lastRowMeals);
rangeMeals.copyTo(rangeDestMeals01);
}
function copyValuesC() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("names");
var name = sheet.getRange("A4");
var sheetMeals = ss.getSheetByName("meals");
var rangeMeals = sheet.getRange("mealsNames");
var sheetstacs = ss.getSheetByName("stacs");
var lastRow = sheetstacs.getRange("B1").getValue();
var mealCount = sheetstacs.getRange("D1").getValue();
var lastRowMeals = sheetstacs.getRange("C1").getValue();
var rangeOrigname01 = sheetstacs.getRange("A" + lastRow + ":A" + mealCount);
var rangeOrigname02 = sheetstacs.getRange("A1");
name.copyTo(rangeOrigname01);
var rangeDestMeals01 = sheetstacs.getRange("B" + lastRowMeals);
rangeMeals.copyTo(rangeDestMeals01);
}
function copyValuesAll() {
copyValuesA();
copyValuesB();
copyValuesC();
}