如何在Google Sheets中以A1为引用自动复制公式并转值
Google Sheets 实现Excel VBA同款公式复制转值功能
以下是对应需求的Google Apps Script代码,完全匹配你原VBA的功能逻辑:
function copyFormulasAndConvertToValues() { // 获取目标工作表 const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); // 读取A1单元格的目标行数 const targetRow = sheet.getRange("A1").getValue(); // 复制C2:D2的公式到C3至D[targetRow]的区域 const sourceFormulaRange = sheet.getRange("C2:D2"); const formulaDestRange = sheet.getRange(3, 3, targetRow - 2, 2); sourceFormulaRange.copyTo(formulaDestRange, SpreadsheetApp.CopyPasteType.PASTE_FORMULAS, false); // 将公式区域转换为静态值 const valueRange = sheet.getRange("C3:D" + targetRow); const staticValues = valueRange.getValues(); valueRange.setValues(staticValues); }
代码说明:
- 无需像VBA那样先选择单元格,Google Apps Script直接操作单元格区域更高效
copyTo方法的PASTE_FORMULAS参数对应VBA的xlPasteFormulas,专门复制公式- 通过
getValues()读取计算后的结果,再用setValues()写回,直接将公式替换为静态值,替代VBA里的两次复制粘贴操作
内容的提问来源于stack exchange,提问作者Poch
相关产品推荐
相关产品推荐

