我想有條件地將一個值從一個作業表復制到另一個作業表。
關于下面的腳本:
它檢查SOURCE標簽中H列的值是否等于45,A列是否為空。如果是的話,它應該把G列的值復制到TARGET標簽中A列的最后一行。它還在TARGET標簽的一些列中添加資料
。如果我改變這個。
sourceSheet.getRange(rangeToCopy).copyTo( destination.getRange( destination.getLastRow() 1, 1)),{contentsOnly:true};到此為止。sourceSheet.getRange(rangeToCopy).copyTo(destination.getRange(destination.getLastRow()-1, 1)),{contentsOnly:true};單元格被粘貼在倒數第二行的A列上,這使我認為目前的代碼試圖復制到最后一個可見行之后,而不是粘貼到A列中非空白單元的下一個空白單元,因此回傳下一條說明的錯誤就像現在這樣,它回傳錯誤。范圍的坐標超出了作業表的尺寸。(我理解這個問題是由于使用了 getlasrow,并且按原樣使用,它試圖檢索一個不存在的行)
這就是目前的代碼:
這就是目前的代碼。
function CopyTo(){
var sheet = SpreadsheetApp.getActive()。
var sourceSheet = sheet.getSheetByName("SOURCE"/span>)。
var destination = sheet.getSheetByName("TARGET") 。
var lastRow = sourceSheet.getDataRange().getLastRow()。
for(var row=3; row<=lastRow; row ){
if(sourceSheet.getRange(row,1) 。 getValue() == "" & sourceSheet. getRange(row,8).getValue() >="45" ){
Logger.log("CELL H" row " has ">=45"" "
=================
" "CELL A" row "是 "空"" "
=================
" "RANGE TO COPY:
" ""G" row ":G" row "")。)
var rangeToCopy = "G"/span> row ":G"/span> row;
sourceSheet.getRange(rangeToCopy).copyTo( destination.getRange( destination. getLastRow() 1, 1)),{contentsOnly:true}。
destination.getRange(destination.getLastRow(), 9) 。 setValue("added Text Column 9")。
destination.getRange(destination.getLastRow(), 13) 。 setValue("added Text Column 13")。
destination.getRange(destination.getLastRow(), 14) 。 setValue(new Date()) 。
}
}
此外,在Target sheet中還有其他的列可以獲取數值,所以也許這就是腳本沒有粘貼到正確位置的原因,但我無法讓它發揮作用。
你能不能好心幫幫忙? 謝謝你。
要解決這個問題,請創建一個新的TARGET作業表,或者想辦法去除當前TARGET作業表中的限制。你目前的代碼應該是好的。
編輯:
我已經編輯了你的V2代碼,使其在當前提供的測驗表上作業。請看下面的代碼。
function CopyTo_V2(/span>){
var sheet = SpreadsheetApp.getActive()。
var sourceSheet = sheet.getSheetByName("SOURCE"/span>)。
var destination = sheet.getSheetByName("TARGET") 。
var lastRow = sourceSheet.getDataRange().getLastRow()。
var column = destination.getRange('A' destination.getMaxRows()
for(var row=3; row<=lastRow; row ){
if(sourceSheet.getRange(row,1) 。 getValue() == "" & sourceSheet. getRange(row,8).getValue() >="45" ){
Logger.log("CELL H" row " has ">=45"" "
=================
" "CELL A" row "是 "空"" "
=================
" "RANGE TO COPY:
" ""G" row ":G" row "")。)
var rangeToCopy = "G"/span> row ":G"/span> row。
var lastFilledRow = parseInt(column.getNextDataCell(SpreadsheetApp. Direction.UP).getA1Notation().slice(1))
Logger.log(lastFilledRow)。
sourceSheet.getRange(rangeToCopy).copyTo( destination. getRange(lastFilledRow 1,1),{contentsOnly:true}。
destination.getRange(lastFilledRow 1, 9) 。 setValue("Added Text Column 9") 。
destination.getRange(lastFilledRow 1, 13)。 setValue("Added Text Column 13") 。
destination.getRange(lastFilledRow 1, 14)。 setValue(new Date()。
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/319362.html
標籤:

