2
我写一个脚本,将在谷歌电子表格规范化选定号码:如何通过不同的控制选择单元循环?
/**
* Normalizes phone numbers to ###-###-#### format.
*/
function normalizePhoneNumbers() {
var activeSheet = SpreadsheetApp.getActiveSheet();
var activeRange = activeSheet.getActiveRange();
var selectedCells = activeRange.getValues();
var phoneNumber = "";
for (var i = 0; i < selectedCells.length; i++) {
for (var j = 0; j < selectedCells[i].length; j++) {
phoneNumber = selectedCells[i][j]; // for better readability
if (phoneNumber) {
phoneNumber = phoneNumber.replace(/[^\d]/g, ""); // remove all non-digit characters from phone number
} else {
continue;
}
if (phoneNumber.length === 10) {
phoneNumber = phoneNumber.slice(0, 3) + '-' + phoneNumber.slice(3, 6) + '-' + phoneNumber.slice(6, 10);
} else {
continue;
}
selectedCells[i][j] = phoneNumber;
}
}
activeRange.setValues(selectedCells);
};
这工作时,我选择行或列或单元块,但只是改变了项目如果一个我控制 - 选择分散在电子表格中的单元格。是否可以在非连续选择中更改多个单元格?如果是这样,我做错了什么?
我实际上是通过自定义函数方法开始的,但后来我意识到我将不得不在一个单元中调用该函数,而是从另一个单元格引用电话号码:-p。我只是想让这些数字正常化,所以这就是为什么我改变了自定义函数的原因。 – user4212284 2014-11-04 08:13:49
也许一个理智的方式来处理这个问题,然后,将会突出显示包含您要格式化的电话号码的**整个**区域,并且有一个正则表达式,它将逐个单元格地确定是否存在它知道如何改变的数字。 – jjjjoe 2014-11-04 15:26:06
雅,我认为这就是我的代码现在试图做的,除非你看到我失踪的东西。所以我得到控制选择的单元并不是必须的,它只是会很好:-p。 – user4212284 2014-11-04 20:13:55