Google sheets 我的代码中有两个错误
我想将活动行复制并粘贴到另一个工作表中,但这会导致两个错误:Google sheets 我的代码中有两个错误,google-sheets,Google Sheets,我想将活动行复制并粘贴到另一个工作表中,但这会导致两个错误: 它无法识别我的输入值 它不会粘贴任何数据并说copyTonotfound function Anunaki() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheetOne = ss.getSheetByName("KEY WORK"); var sheetTwo = ss.getSheetByName("BUGS"); var j =
copyTo
notfound
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');
}
}
替换代码中的以下行:
var response = ui.prompt('BUG Confirmation', 'How many Interactions ?', ui.ButtonSet.YES_NO);
致:
===================编辑: 以下是应能工作的完整代码:
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');
}
};
注:我在脚本中添加了'var row'以获取当前行,该行需要在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');
}
};
谢谢你的及时回复。现在我有另一个问题,它不是从单元格中获取数据并粘贴到另一张工作表上。它给出了这个错误“在对象中找不到函数copyTo”。您的代码不太清楚,您到底想复制什么?好的,我只想将活动单元格整行的值而不是公式复制到另一个工作表。请注意,如果我再次运行脚本,则不应与第二页中的数据重叠。我已编辑了答案。检查一下,脚本代码现在应该可以根据需要工作了。
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');
}
};