【发布时间】:2023-03-05 14:45:01
【问题描述】:
我正在使用 Google 表格来记录我的库存。我正在尝试使一切自动化。有多个带有股票名称的工作表。我有一个工作表标题“History1”,我在其中手动输入数据,并构建以下代码来分离各个工作表中的所有数据。这是Sheet的链接Trade Binance Google Sheet Tracker
我编写了以下脚本,但它给了我错误并且无法正常工作。
function split_history(){
var ss=SpreadsheetApp.getActive();
var hissht=ss.getSheetByName("History1");
var hisvals=hissht.getDataRange().getValues();
var sheets=ss.getSheets();
for (i=0;i<sheets.length;i++){
if (sheets[i].getName()=="Summary" || sheets[i].getName()=="History1" || sheets[i].getName()=="Main Menu" ) {} else {
var sn=sheets[i].getName();
var vals=[];
for (j=1;j<hisvals.length;j++){
if (hisvals[j][8]==sn){
vals.push([hisvals[j][0],hisvals[j][1],hisvals[j][2],hisvals[j][3],hisvals[j][4],hisvals[j][5],hisvals[j][6],hisvals[j][7]]) ; //modify it as per your need
}
}
var dsht=ss.getSheetByName(sn);
var dlr=dsht.getLastRow();
dsht.getRange(dlr+1,1,vals.length,8).setValues(vals); //i have used only 4 columns A,B,C,D - you can modify it
}
}
}
//
请检查并建议我哪里做错了。谢谢
【问题讨论】:
-
当您说
it does not work correctly时,您到底是什么意思?它会填充一些工作表然后出错,还是根本不填充任何工作表?我认为这可能是由于没有交易可以输入工作表的情况,在这种情况下,dsht.getRange(dlr+1,1,vals.length,8).setValues(vals)之前的if (vals.length === 0) continue行可能会修复它。 -
@RafaGuillermo 谢谢,我的代码已经在工作并且我修复了它,但现在我面临的问题是,数据填充在最后一个空白行,因为列 J:N 包含公式和代码将 A2:H 中的行视为数据行。所以,我想要这样,代码应该在下一个 emply 单元格上填充数据,以便它获取 Column A2 单元格并填充第一个值,然后填充 B2:H2 并填充所有列。由于 J:N 单元格中的公式,现在它应该移动到下一个空白列而不是下一个空白行。我希望你明白我的意思。
-
我认为最好提出一个新问题来引起更多关注。此外,如果您解决了问题,请考虑发布您的解决方法作为答案,以便未来遇到类似问题的用户也能找到解决方案:)
标签: google-apps-script google-sheets google-sheets-formula google-sheets-api