如何在不丢失单元格的情况下自动更新谷歌电子表格中的自定义公式?

大家好,我正在尝试使用 Google 电子表格公式来接收加密价格,将公式放入 Google 电子表格中效果很好,而且我得到的价格没有任何问题。

 =IMPORTXML("https://www.marketscreener.com/quote/cryptocurrency/BITCOIN-EURO-45553925/";"//td[@class='fvPrice colorBlack']")

问题:像 IMPORTXML 这样的自定义公式不会在电子表格中自动更新,所以我从谷歌那里获取了执行此任务的所有方法,但没有一个有效。直到我找到一个部分有效的方法,它才能完成工作,但不幸的是删除了我的公式周围的单元格。

这是我在运行方法 Before

之前的电子表格

这是我运行 After 方法后的电子表格

这是部分有效的方法:

/**
 * Get all sheet names from active spreadsheet
 */
function sheetNames() {
  var sheetNames = [];
  var sheets = Spreadsheetapp.getactiveSpreadsheet().getSheets();
  for (var i = 0; i < sheets.length; i++) sheetNames.push( sheets[i].getName() )
  return sheetNames;
}

/**
 * Update all formula data in cell range
 */
function updateData() {
    var spreadsheet     = Spreadsheetapp.getactiveSpreadsheet(),activeSheet     = spreadsheet.getactiveSheet()
        activeSheetName = activeSheet.getSheetName(),activeRange     = activeSheet.getactiveRange(),sheets          = sheetNames() // OR define an array of sheet names: ['Sheet1','Sheet2'],//  cellRange       = (activeRange.getvalues().length > 1) ? activeRange.geta1Notation() : Browser.inputBox('Enter your range'),range           = '';
                
    // loop through all sheets
    sheets.forEach(function(sheet) {
        var originalFormulas = [],range            = activeRange,defaultRanges    = {
                'europelist': 'A1:F9','europelist': 'A1:F9'
            },// set cell range if entered,ortherwise fall back to default
        cellRange = defaultRanges[sheet];
        
        // set range to active range,otherwise fall back to defined cell range
        range = spreadsheet.getSheetByName(sheet).getRange(cellRange);
        
        originalFormulas = range.getFormulas();
            
        // modify formulas
        const modified = originalFormulas.map(function (row) {
            return row.map(function (col) { 
              return col.replace('=','?');
            }); 
        });
        
        // update formulas
        range.setformulas(modified);
        Spreadsheetapp.flush();
        
        // return formulas to original
        range.setformulas(originalFormulas);
    });
}

有人知道如何解决这个问题吗?

rockyhmrr 回答:如何在不丢失单元格的情况下自动更新谷歌电子表格中的自定义公式?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1392.html

大家都在问