亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Google 腳本中將公式設置為值?

如何在 Google 腳本中將公式設置為值?

青春有我 2021-11-04 16:40:01
我編寫了一個生成隨機數并將它們與文本連接起來的代碼。我正在使用此函數來填充一系列單元格(從 A1 到 Z10):function myFunction() {var ss = SpreadsheetApp.getActiveSpreadsheet();var sheet = ss.getSheets()[0];var cell = sheet.getRange("A1:Z10");cell.setFormula('=CONCATENATE("61", RANDBETWEEN(1000000000, 9999999999), "@text")');}這樣做的問題是每次我重新加載頁面時,都會重新計算數字,沒有靜態值。我希望我的范圍內的值變為靜態,以便每次重新加載頁面時,“61”和“@text”之間的數字保持不變。我嘗試了以下兩個代碼,但都沒有奏效。第一個沒有收到錯誤消息,只是沒有保持值靜態,而第二個收到錯誤消息“”function copyFormulasToValues() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sourceSheet = ss.getSheetByName("Sheet1"); var destinationSheet = ss.getSheetByName("Sheet1"); var range = sourceSheet.getRange(1,1,1,1);range  .copyValuesToRange(destinationSheet, 1, 1, range.getNumRows(), range.getNumColumns()); };第二個代碼:var studentSheet = SpreadsheetApp.getActiveSpreadsheet();var sourceSheet = SpreadsheetApp.getActiveSpreadsheet();// copyTo rowssourceSheet.getRange(1, 1, 10, 26).copyTo(studentSheet.getRange(1, 1, 10, 26), {contentsOnly: true});SpreadsheetApp.flush(); // applies all values to the student spreadsheet                    // and therefore all the formula cells update// get value from calculated formula cellstudentSheet.getRange(1, 1, 10, 26).copyTo(sourceSheet.getRange(1, 1, 10, 26), {contentsOnly: true});}錯誤信息:找不到方法 getRange(number,number,number,number)。(第 11 行,文件“代碼”)我只想將值復制并粘貼到同一個電子表格中,以便它們保持靜態。我怎樣才能做到這一點?注意 1.我真的很感謝田內池的幫助。我嘗試了該腳本(已在下面發布),但是當我嘗試運行它時,該函數會運行代碼,然后完全刪除這些值。function myFunction() {var ss = SpreadsheetApp.getActiveSpreadsheet();var sheet = ss.getSheets()[0];var cell = sheet.getRange("A1:Z10");cell.setFormula('=CONCATENATE("61", RANDBETWEEN(1000000000, 9999999999), "@text.com")');var ss = SpreadsheetApp.getActiveSpreadsheet();var sheet = ss.getSheetByName("Sheet1");var range = sheet.getRange("A1:Z10");range.copyValuesToRange(sheet, 1, range.getNumColumns(), 1, range.getNumRows());}也許我做錯了什么?
查看完整描述

1 回答

?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

您想刪除公式并將值放入A1:Z10相同范圍的單元格中。

公式已被放入電子表格。

如果我的理解是正確的,這個答案怎么樣?


模式一:

在這種模式中,copyValuesToRange使用。


示例腳本:

function copyFormulasToValues() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();

  var sheet = ss.getSheetByName("Sheet1");

  var range = sheet.getRange("A1:Z10");

  range.copyValuesToRange(sheet, 1, range.getNumColumns(), 1, range.getNumRows());

}

我認為在您的腳本中,參數可能是錯誤的。請sheet, column, columnEnd, row, rowEnd按順序設置。

模式2:

在這種模式中,copyTo使用。


示例腳本:

function copyFormulasToValues() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();

  var range = ss.getSheetByName("Sheet1").getRange("A1:Z10");

  range.copyTo(range, {contentsOnly: true});

}

在這種情況下,請使用copyToClass Range。


查看完整回答
反對 回復 2021-11-04
  • 1 回答
  • 0 關注
  • 205 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號