下面的代码可以工作,但是我认为有一种更优雅的方法。我想将“客户”表(源)上选定行(D:R)的一部分复制到“测试”表(目标)上,再复制到该表中的第一空白行(C:Q)。
该代码可以工作,但看起来表现不佳/不优雅。
function rowSelected() {
var customer_sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Customer_Info");
var invoice_sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Test");
var customer_selection_row = customer_sheet.getActiveRange().getRow();
//Browser.msgBox(customer_selection_row);
var customer_selection_start = 'D' + customer_selection_row;
var customer_selection_end = 'R' + customer_selection_row;
var customer_selection_range = customer_selection_start + ':' + customer_selection_end;
var source_range = customer_sheet.getRange(customer_selection_range);
customer_sheet.setActiveRange(source_range);
//Browser.msgBox(source_range.getA1Notation());
var invoice_selection_row = getFirstEmptyRowWholeRow();
var invoice_selection_start = 'C' + invoice_selection_row;
var invoice_selection_end = 'Q' + invoice_selection_row;
var invoice_selection_range = invoice_selection_start + ':' + invoice_selection_end;
var destination_range = invoice_sheet.getRange(invoice_selection_range);
invoice_sheet.setActiveRange(destination_range);
//Browser.msgBox(destination_range.getA1Notation());
customer_sheet.setActiveRange(source_range).copyTo((destination_range), {contentsOnly:true});
}
我在想有一些用更少的代码来做到这一点的方法。
Customer_Info
到列“C”到“Q”在由检索到的行getFirstEmptyRowWholeRow()
的片材Test
。如果我的理解是正确的,那么该修改如何?
SpreadsheetApp.getActiveSpreadsheet()
一次被声明为“ ss”。getRange(row, column, numRows, numColumns)
用于代替getRange(a1Notation)
。destination_range
,设置起始单元格后,可以从中复制源范围。Customer_Info
,将运行脚本。function rowSelected() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var customer_sheet = ss.getActiveSheet();
if (customer_sheet.getSheetName() == "Customer_Info") {
var invoice_sheet = ss.getSheetByName("Test");
var activeRange = ss.getActiveRange();
var source_range = customer_sheet.getRange(activeRange.getRow(), 4, activeRange.getNumRows(), 15).activate();
var destination_range = invoice_sheet.getRange(getFirstEmptyRowWholeRow(), 3); // or invoice_sheet.getRange("C" + getFirstEmptyRowWholeRow())
source_range.copyTo(destination_range, {contentsOnly: true});
}
}
getFirstEmptyRowWholeRow()
您的脚本的代码也用于上述修改后的脚本。Customer_Info
并运行该脚本,则从“ C”列和行中的单元格复制单元格“ D1:R3”的值。getFirstEmptyRowWholeRow()
。如果我误解了您的问题,而这不是您想要的,我深表歉意。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句