2015-09-27 73 views
0

我想活動行復制並粘貼到另一個工作表,但它給我兩個錯誤:兩個錯誤

  1. 它不承認我的輸入值。
  2. 它沒有粘貼任何數據並且沒有找到copyTo

    function Anunaki() { 
        var ss = SpreadsheetApp.getActiveSpreadsheet(); 
        var sheetOne = ss.getSheetByName("KEY WORK"); 
        var sheetTwo = ss.getSheetByName("BUGS"); 
        var j = sheetTwo.getLastRow() + 1; 
        var data = sheetOne.getActiveRange().getValues(); 
        var columnCount = data[0].length 
        var ui = SpreadsheetApp.getUi(); 
    
        var response = ui.prompt('BUG Confirmation', 'How many Interactions ?', ui.ButtonSet.YES_NO); 
    
        if (response === "0") 
        { 
         ui.alert('Opps Zero I don\'t believe you, Try again'); 
        } 
        else if (response === "1") 
        { 
         sheetOne.getRange(1,1,1,columnCount).copyTo(sheetTwo.getRange(j,1,1,columnCount)); 
        } 
        else if (response === "2") 
        { 
         sheetOne.getRange(1,1,1,columnCount).copyTo(sheetTwo.getRange(j,1,1,columnCount)); 
        } 
        else 
        { 
         ui.alert('Please enter a numeric value between 1 to 2'); 
        } 
    } 
    

回答

0

替換以下行的代碼:

var response = ui.prompt('BUG Confirmation', 'How many Interactions ?', ui.ButtonSet.YES_NO); 

要:

var response = ui.prompt('BUG Confirmation', 'How many Interactions ?', ui.ButtonSet.YES_NO).getResponseText(); 

===============
編輯: 以下是應該工作的完整代碼:

function Anunaki() { 

    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheetOne = ss.getSheetByName("KEY WORK"); 
    var sheetTwo = ss.getSheetByName("BUGS"); 

    if(ss.getActiveSheet().getName() != sheetOne.getName()) 
    return; 

    var j = sheetTwo.getLastRow() + 1; 
    var data = sheetOne.getDataRange().getValues(); 
    var row = sheetOne.getActiveRange().getRow(); 
    var columnCount = data[0].length 
    var ui = SpreadsheetApp.getUi(); 

    var response = ui.prompt('BUG Confirmation', 'How many Interactions ?', ui.ButtonSet.YES_NO).getResponseText(); 

    if (response === "0") { 
    ui.alert('Opps Zero I don\'t believe you, Try again'); 
    } 

    else if (response === "1") { 
    sheetOne.getRange(row,1,1,columnCount).copyTo(sheetTwo.getRange(j,1,1,columnCount)); 
    } 

    else if (response === "2") { 
    sheetOne.getRange(row,1,1,columnCount).copyTo(sheetTwo.getRange(j,1,1,columnCount)); 
    } 
    else { 
    ui.alert('Please enter a numeric value between 1 to 2'); 
    } 

}; 

注:
我已經在腳本中添加「無功行」來獲取當前行這需要getRange函數用來獲取的整個行範圍內的值。



編輯:要獲得唯一的值,而不是公式中的目的地表,請嘗試以下代碼:

function Anunaki() { 

    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheetOne = ss.getSheetByName("KEY WORK"); 
    var sheetTwo = ss.getSheetByName("BUGS"); 

    if(ss.getActiveSheet().getName() != sheetOne.getName()) 
    return; 

    var j = sheetTwo.getLastRow() + 1; 
    var data = sheetOne.getDataRange().getValues(); 
    var row = sheetOne.getActiveRange().getRow(); 
    var columnCount = data[0].length 
    var ui = SpreadsheetApp.getUi(); 

    var response = ui.prompt('BUG Confirmation', 'How many Interactions ?', ui.ButtonSet.YES_NO).getResponseText(); 

    if (response === "0") { 
    ui.alert('Opps Zero I don\'t believe you, Try again'); 
    } 

    else if (response === "1") { 
    var values = sheetOne.getRange(row,1,1,columnCount).getValues(); 
    sheetTwo.getRange(j,1,1,columnCount).setValues(values) 
    } 

    else if (response === "2") { 
    var values = sheetOne.getRange(row,1,1,columnCount).getValues(); 
    sheetTwo.getRange(j,1,1,columnCount).setValues(values) 
    } 
    else { 
    ui.alert('Please enter a numeric value between 1 to 2'); 
    } 

}; 
+0

感謝您的及時答覆。 – Mask

+0

ji現在我還有一個問題,它沒有從單元獲取數據並粘貼到另一個表單。它給出這個錯誤「在對象中找不到函數copyTo」 – Mask

+0

你的代碼並不是很清楚,你究竟想要拷貝什麼? – Kishan