我尋求幫助以完成以下任務的 MACRO 腳本。
基本要求是從 'Ref' 選項卡(大約 200 個符號)按順序獲取資料到 'Mcontrol'!E3(此選項卡從網站匯入表格)
從這個表中,Symbol/s 的排序最高的 2 個值被提取并匯出到“OI EOD”選項卡,即所需的值顯示在“OI EOD”中!G5:K5。
然后,復制粘貼范圍“OI EOD”!G5:K5 ,到下表('OI EOD'!C6:C210)中匹配的行(符號匹配到'Mcontrol'!E3)。
我尋求幫助將 forEach 條件放入宏中。這樣對于 Cell_1 參考中的每個新值,下一個周期的復制粘貼功能就完成了。
希望大家注意新手的幫助請求,并給予良好的解決方案和指導。
作業表鏈接如下 https://docs.google.com/spreadsheets/d/1az2kas91KFxHcWhtWDg-g20hNYR-_zEiWPvYs-x42YU/edit?usp=sharing
宏 -
var wb = SpreadsheetApp.getActive();
var sh1= wb.getSheetByName('Mcontrol');
var sh2= wb.getSheetByName('OI EOD');
var R1 = 3
var C1 = 3
var R2 = 3
var C2 = 2
var R3 = 3
var C3 = 5
var cell_1 = sh1.getRange(R1,C1).getValue();
var cell_2 = sh1.getRange(R2,C2).getValue();
var cell_3 = sh1.getRange(R3,C3).getValue();
for(i=1;i<cell_2;i );
cell_1 = i 1;
sh1.getRange(R1,C1).setValue(cell_1);{
var Range_1 = sh2.getRange(6, 3, 300);
var row_i = 5 ; // source row no. for data copy paste
const Row_1 = row_i;
const Col_2 = 7;
const Row_Offet1 = 1;
const Col_Offet1 = 5;
var data = Range_1.getValues();
let ABC = cell_3;
let row = 1 data.findIndex(users => {return users[0] == ABC});
var row_target = row row_i ;
const sourceRange = sh2.getRange(Row_1,Col_2,Row_Offet1,Col_Offet1);
var destRange = sh2.getRange(row_target,Col_2,Row_Offet1,Col_Offet1);
sourceRange.copyTo(destRange,SpreadsheetApp.CopyPasteType.PASTE_VALUES,false);
for(k=1;k<cell_1.i;k );
Logger.log(row_target);
Logger.log(k) ;
}
//NEXT
// cell_1=sh1.getRange(R1, C1);
// sh1.getRange(R1,C1).setValue(i);
}
}```
Thanks
Robin
uj5u.com熱心網友回復:
不確定是否理解整個任務,所以這里是一個猜測。
這樣,您可以從start一些end“符號”(或數字)獲取值,并將這些值放在“OI EOD”表上的正確行中:
function main() {
var start = 1;
var end = 5;
var ss = SpreadsheetApp.getActiveSpreadsheet();
var mcontrol_sheet = ss.getSheetByName('Mcontrol');
var oi_eod_sheet = ss.getSheetByName('OI EOD');
// get a list of all Symbols from column 'C' of the sheet 'OI EOD'
var symbols = oi_eod_sheet.getRange('c6:c').getValues().flat();
for (let i = start; i <= end; i ) {
// set the number i on the sheet 'Mcontrol' into the cell 'C3'
mcontrol_sheet.getRange('c3').setValue(i);
// wait to complete all the changes on the spreadsheet
SpreadsheetApp.flush();
// get the Symbol and Values from the range 'C5:K5' of the sheet 'OI EOD'
var [symbl, _, _, _, ...values] = oi_eod_sheet.getRange('c5:k5').getValues()[0];
// get the row index for this Symbol on the sheet 'Mcontrol'
var row = symbols.indexOf(symbl) 6;
console.log({row}, {symbl}, {values});
// set the values on the sheet 'OI EOD' on the row with given index
oi_eod_sheet.getRange('g' row ':k' row).setValues([values]);
}
}
由您決定如何定義start和end值。它可以是來自兩個單元格的值。或者可以選擇范圍。或者是其他東西。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/488098.html
上一篇:如何在標題為游標所在當前句子文本的同一檔案夾中創建一個新的GoogleDoc?
下一篇:如何從電子郵件中提取數字
