VBA的CLEAN方法删除了字符0-31, 127, 129, 141, 143, 144, 157
。您想使用 Google Apps 脚本来实现此目的吗?如果我的理解是正确的,那么这个示例脚本怎么样?因为我对这个方法很感兴趣,想研究一下,所以我创建了这个。
示例脚本:
function cleanForGAS(str) {
if (typeof str == "string") {
var escaped = escape(str.trim());
for (var i = 0; i <= 31; i++) {
var s = i.toString(16);
var re = new RegExp("%" + (s.length == 1 ? "0" + s : s).toUpperCase(), "g");
escaped = escaped.replace(re, "");
}
var remove = ["%7F", "%81", "%8D", "%8F", "%90", "%9D"];
remove.forEach(function(e) {
var re = new RegExp(e, "g");
escaped = escaped.replace(re, "");
});
return unescape(escaped).trim();
} else {
return str;
}
}
Usage :
当您使用它时,请修改您的脚本。
From :
rangeValues[cellRow][cellColumn] = rangeValues[cellRow][cellColumn].toString().trim().replace(/\s(?=\s)/g,'');
To :
rangeValues[cellRow][cellColumn] = cleanForGAS(rangeValues[cellRow][cellColumn].toString());
参考 :
- WorksheetFunction.Clean 方法 (Excel) https://msdn.microsoft.com/en-us/vba/excel-vba/articles/worksheetfunction-clean-method-excel
如果我误解了你的问题,我很抱歉。