![](/img/trans.png)
[英]Copying part of a row from one Google spreadsheet to another google spreadsheet based on a value in a cell?
[英]Google spreadsheet :Copying row from a range based on a cell value in that row
我需要調用一個函數,該函數將從第一個選項卡(訂購指南)中復制數量大於零的所有行,並將數據粘貼到同一電子表格的第二個選項卡(采購訂單)中。 查看共享文檔。
https://docs.google.com/spreadsheets/d/1Ajccn3ZYtmd8WTFI3baDUd5eyRfCDXa1-cQJt7RGObE/edit?usp=sharing
有人可以幫我解決這個問題。 我寫了下面的代碼,但它不起作用。
function AddLines(event) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var r = SpreadsheetApp.getActiveSpreadsheet().getActiveRange();
if(s.getName() == "Ordering guide" && r.getColumn() == 8 && r.getValue()>0) {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Purchase Order");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).copyTo(target);
}
}
我復制了您的電子表格並嘗試修復腳本。 這是帶有固定代碼的電子表格的新副本,效果很好。
這是固定代碼。
//Generate Purchase Order
function generatePO() {
var ss = SpreadsheetApp.getActive();
var ogSheet = ss.getSheetByName('Ordering guide');
var poSheet = ss.getSheetByName('Purchase Order');
var lookupData = ogSheet.getRange(5, 1, ogSheet.getLastRow()-4, 9).getValues();
var targetData = [];
for(var i=0; i<lookupData.length; i++){
if(lookupData[i][7] && lookupData[i][7] > 0){
targetData.push(lookupData[i]);
}
}
poSheet.getRange(5, 1, 50-4, 9).clearContent();
poSheet.getRange(5, 1, targetData.length, 9).setValues(targetData);
poSheet.activate();
}
//Reset Quantities
function resetQuantity(){
var ss = SpreadsheetApp.getActive();
var ogSheet = ss.getSheetByName('Ordering guide');
var qtyRange = ogSheet.getRange(5, 8, ogSheet.getLastRow()-4, 1).clearContent();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.