メニュー項目が選択されているときに、スプレッドシート上の開いているシートの下部に特定のデータが呼び出されて重複する機能をコーディングしようとしています。例では、シートごとに行があるので、rowNumberをduplicateLastRow関数に渡そうとしています。現在、この値はnull値を返しています。getRangeのヌル値を返すGoogleシート
私のメニューには〜80個のアイテムがあり、80個の関数定義があり、500行のコードがコマンドにコピーして貼り付けるのに過度であると思うので、これはさまざまな方法があります。コードは以下に含まれており、リンクされたシートはここに公開されています:https://docs.google.com/spreadsheets/d/1yOJ8VdhbkbC9vw5or4geV-mv-PCk-WA86L8-F7-WGM8/edit?usp=sharing スクリプトエディタのプロジェクトはcopyRowFromOriginToDestinationと呼ばれ、私が取り組んでいるスクリプトはtestFileBlargです - Code2スクリプトは動作していますが、ダイアログのプロンプトと行を削除します。
多くの先行き!
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('testRow')
.addSubMenu(ui.createMenu('Life Sciences')
.addSubMenu(ui.createMenu('NRG')
.addItem('Highlight/Alamy', 'callHANRG')
))
.addToUi();
}
function callHANRG(rowNumber){
duplicateLastRow(3);
}
function duplicateLastRow(rowNumber){
var originSheetName = "Example Rows";
var ss = SpreadsheetApp.getActiveSpreadsheet(); // This is an object that represents the open spreadsheet
var originSheet = ss.getSheetByName(originSheetName); // This object represents the sheet we are copying FROM
var destinationSheet = ss.getActiveSheet() // getSheetByName(destinationSheetName); // This object represents the sheet we are copying TO
destinationSheet.insertRowAfter(destinationSheet.getLastRow()); // This adds a row to the end of the destination sheet so it doesn't fill up!
var originRow = originSheet.getRange(rowNumber, 1, 1, originSheet.getLastColumn()); // This object represents the row to be copied
var destinationRow = destinationSheet.getRange(destinationSheet.getLastRow()+1, 1); // This object represents the row we are copying to
originRow.copyTo(destinationRow); // This actions the copying
}
私が理解から、あなたのコードから、あるワークシートのデータを他のワークシートにコピーする関数を書いて、正しいものにしたいのですか? –
ワークシートのデータを生成するより良い方法がない限り、それは私の望むことです - 配列を探していますが、これについてはほとんど分かりません。 –
私の答えを確認してください。 –