2 回答

TA貢獻1946條經驗 獲得超3個贊
問題:
在您的代碼中,您使用
getValues()
獲取單個元素的值。在這種特定情況下,您應該改用getValue()
。您不需要預定義
array
并且在您的代碼中array1
沒有在任何地方定義。String()
也是多余和錯誤的,在這種情況下,單元格值默認為字符串。
解決方案:
鑒于它12.34kg,15.62kg,34.34kg
位于單元格J21上,以下腳本將分別填充12.34kg
,15.62kg
和單元格J21、J22和J2334.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]);
}
}

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);
}
添加回答
舉報