Javascript 根据google工作表上的文本在不同的电子表格中复制一行
我想要一个代码或公式,可以根据B列上的文本将一行复制到另一个电子表格,但我只想复制a、B、C和D列……例如,如果B列的名称是定子,我想将该行复制到电子表格定子,如果名称是交流发电机,我想将该行复制到交流发电机电子表格 我已经试过这个了:Javascript 根据google工作表上的文本在不同的电子表格中复制一行,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我想要一个代码或公式,可以根据B列上的文本将一行复制到另一个电子表格,但我只想复制a、B、C和D列……例如,如果B列的名称是定子,我想将该行复制到电子表格定子,如果名称是交流发电机,我想将该行复制到交流发电机电子表格 我已经试过这个了: function yourfunction() { var ss=SpreadsheetApp.getActive(); var sh1=ss.getSheetByName("Stator"); var sh2=ss.getSheet
function yourfunction() {
var ss=SpreadsheetApp.getActive();
var sh1=ss.getSheetByName("Stator");
var sh2=ss.getSheetByName("Prototype Number");
var rg1=sh1.getRange(1,2,sh1.getLastRow(),sh1.getLastColumn()-1);//starting at column2
var data=rg1.getValues();
for(var i=1;i<data.length;i++) {
if(data[i][6]=="Estator") {
sh1.getRange(i+1,2,1,sh1.getLastColumn()-1).copyTo(sh2.getRange(sh2.getLastRow()+1,1,1,sh1.getLastColumn()-1));
}
}
}
函数yourfunction(){
var ss=SpreadsheetApp.getActive();
var sh1=ss.getSheetByName(“定子”);
var sh2=ss.getSheetByName(“原型编号”);
var rg1=sh1.getRange(1,2,sh1.getLastRow(),sh1.getLastColumn()-1);//从column2开始
var data=rg1.getValues();
对于(变量i=1;i解释:
- 假设您在主工作表
main
中的A、B、C、D列中有数据。您的目标是将行(A-D
)复制到相应的工作表,其名称与B列中的值匹配
- 您需要迭代所有工作表,并仅筛选列
B
与该工作表名称匹配的数据(行)。您可以使用来迭代工作表并基于工作表名称-列B
进行筛选
解决方案:
请随意调整工作表的名称或范围,但请尊重脚本的逻辑,否则它将无法正常工作
function myFunction() {
const ss = SpreadsheetApp.getActive();
const main_sheet = 'Main';
const msh = ss.getSheetByName(main_sheet);
const sheets = ss.getSheets();
const data = msh.getRange('A2:D'+msh.getLastRow()).getValues();
sheets.forEach(sh=>{
if(sh.getName()!=main_sheet){
let temp_ar = data.filter(r=>r[1]==sh.getName());
if (temp_ar.length>0){
sh.getRange(sh.getLastRow()+1,1,temp_ar.length,temp_ar[0].length).setValues(temp_ar);
}}});
}
我的示例文件的结构:
你的主表是什么?定子是什么?不,我的主表是一张包含定子和交流发电机数据的表是的,但是那张表的名称是什么?你似乎没有在任何地方使用它。如果你想复制a、B、C和D,为什么要从B列开始(从第2列开始)?