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

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

將單元格視為數組

將單元格視為數組

慕標5832272 2023-04-01 16:00:11
我有一些數據,我必須用它來創建一個 pdf。在原始數據的一個單元格中,有一個重量列表,例如 12.34kg、15.62kg、34.34kg。當我將它們寫入另一張表以生成我的 pdf 時,我想將每個重量寫入不同的單元格,一個在另一個單元格中,例如:單元格 C2 中的 12.34 千克,單元格 C3 中的 15.62 千克和單元格 C4 中的 34.34 千克。我正在努力完成這項任務......我正在嘗試執行但不起作用,setValues 方法存在問題......function mySplit() {   var doc = SpreadsheetApp.getActive().getSheetByName("Sheet2");   var cell = String(doc.getRange("J21").getValues());   var array =[{}];   array = cell.split(",");   for (var j = 0; j<= array1.length; j++)  {     doc.getRange(21+j,10,1,1).setValues(array[0][j]);    } }
查看完整描述

2 回答

?
智慧大石

TA貢獻1946條經驗 獲得超3個贊

問題:

  • 在您的代碼中,您使用getValues()獲取單個元素的值。在這種特定情況下,您應該改用getValue() 。

  • 您不需要預定義array并且在您的代碼中array1沒有在任何地方定義。

  • String()也是多余和錯誤的,在這種情況下,單元格值默認為字符串。


解決方案:

鑒于它12.34kg,15.62kg,34.34kg位于單元格J21上,以下腳本將分別填充12.34kg,15.62kg和單元格J21、J22J2334.34kg中:

function mySplit() { 

  

  var doc = SpreadsheetApp.getActive().getSheetByName("Sheet2"); 

  var cell = doc.getRange("J21").getValue();

  var array = cell.split(","); 

  

  for (var j = 0; j<= array.length; j++)

  {

    doc.getRange(21+j,10).setValue(array[j]);  

  } 


}


查看完整回答
反對 回復 2023-04-01
?
富國滬深

TA貢獻1790條經驗 獲得超9個贊

雖然已經有解決您問題的答案,但不建議通過setValue(value)單獨設置每個不同單元格的值,因為它效率低下。


在可能的情況下,建議使用批處理操作一次寫入所有單元格:setValues(values)可用于該操作(對于getValue()and也是如此getValues())。


setValues(values)需要一個二維值數組,因此cell應將字符串轉換為二維數組(其中外部數組指的是不同的行,內部數組元素指的是列)。您可以為此使用split()和map() :


function mySplit() {   

  var doc = SpreadsheetApp.getActive().getSheetByName("Sheet2"); 

  var cell = doc.getRange("J21").getValue();

  var array = cell.split(",").map(el => [el]);

  doc.getRange(21, 10, array.length, array[0].length).setValues(array);

}


查看完整回答
反對 回復 2023-04-01
  • 2 回答
  • 0 關注
  • 165 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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