Я просто разбираюсь со сценарием Google Sheets, и мне немного трудно разобраться в проблеме.Код, очевидно, копирует пустые значения из столбца 4 в столбец 3, когда я использую Range.setFormulaR1C1
в строке чуть выше оператора Range.copyTo
.
function cleanUpNames() {
var currentSheet = SpreadsheetApp.getActive().getSheetByName('Sheet1');
var currentSheetLastRow = currentSheet.getLastRow();
//Range of cells in the third column, that are just names
var firstNames = currentSheet.getRange('C2:C' + currentSheetLastRow);
//Range of cells in the fourth column
var newFirstNames = currentSheet.getRange('D2:D' + currentSheetLastRow);
//Using the fourth column to replace period character(.) with empty string
var formulaString = '=SUBSTITUTE(R[0]C[-1],".","")';
newFirstNames.setFormulaR1C1(formulaString);
//This line is giving empty values on the third column, instead of pasting the actual formula results
newFirstNames.copyTo(firstNames, SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
};
Однако, когда я покончу с кодом, который устанавливает формулы и ввожу соответствующую формулу из пользовательского интерфейса, а затем запускаю следующий код, он работает просто отлично.Я действительно не уверен, где я понимаю это неправильно.Любая помощь будет принята с благодарностью.
function cleanUpNames() {
var currentSheet = SpreadsheetApp.getActive().getSheetByName('Sheet1');
var currentSheetLastRow = currentSheet.getLastRow();
//Range of cells in the third column, that are just names
var firstNames = currentSheet.getRange('C2:C' + currentSheetLastRow);
//Range of cells in the fourth column
var newFirstNames = currentSheet.getRange('D2:D' + currentSheetLastRow);
//This line is giving empty values on the third column, instead of pasting the actual formula results
newFirstNames.copyTo(firstNames, SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
};