SHEET: https://docs.google.com/spreadsheets/d/1P7thpFW0XixHrUBIp_y6VEqoQqZ-IF_zRffguX6n87M/edit?usp=sharingストレイデータ - ここでの例のシート使用可能
Iは、2つの元のシートの間で共有されるテキストを使用して、第3のシート上に二枚のシートをマージしようとしています。このコードのほとんどは、このWebサイトなどの例から盗んだものです。私の「バグ」はそれが繰り返しテキストとマージされたシートの最後の行を作成しているところ確認してくださいここで
setnote sheet data:
NAME setnote
name1 setnote1
name2 setnote2
takenote sheet data:
NAME takenote
name1 takenote1
name2 takenote2
MERGE sheet data:
NAME setnote takenote
name1 setnote1 takenote1
name2 setnote2 takenote2
setnote1 <---- this is the stray data when script is run
コードがある(ただし、データの完全な行):
var ss=SpreadsheetApp.getActiveSpreadsheet();
function onOpen() {
var menuEntries = [ {name: "Merge Set Notes and Take List",
functionName: "mergeDatav01"}, ];
ss.addMenu("Merge Functions",menuEntries);
}
function mergeDatav01(){
var mergeSheet = ss.getSheetByName('MERGE');
var setNoteSheet = ss.getSheetByName('setnote');
var takeNoteSheet = ss.getSheetByName('takenote');
var setFileNameRange = setNoteSheet.getRange(2, 1, setNoteSheet.getLastRow(), setNoteSheet.getLastColumn()).getValues();
var takeFileNameRange = takeNoteSheet.getRange(2, 1, takeNoteSheet.getLastRow(), takeNoteSheet.getLastColumn()).getValues();
var mergeStartRow = 2;
for (var takeLoop = 0; takeLoop < takeFileNameRange.length; takeLoop++) {
for (var setLoop = 0; setLoop < setFileNameRange.length; setLoop++) {
if (takeFileNameRange[takeLoop][0] == setFileNameRange[setLoop][0].toString().match(takeFileNameRange[takeLoop][0])) {
var row = mergeStartRow + takeLoop
mergeSheet.getRange(row, 1, 1).setValue(takeFileNameRange[takeLoop][0]);
mergeSheet.getRange(row, 2, 1).setValue(setFileNameRange[setLoop][1]);
mergeSheet.getRange(row, 3, 1).setValue(takeFileNameRange[takeLoop][1]);
break;
break;
}
}
}
}