簡體   English   中英

Google 電子表格:根據該行中的單元格值從范圍復制行

[英]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);
  }
}

我復制了您的電子表格並嘗試修復腳本。 這是帶有固定代碼的電子表格的新副本,效果很好。

PO 生成電子表格副本

這是固定代碼。

//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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM