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