Pude hacer lo siguiente en VBA y necesito transferir mi secuencia de comandos a Office Scripts en Excel 365. No sé cómo hacer toda la hoja y no solo una cadena.
Esto es lo que usé en VBA:
Dim rng As Range Set rng = Selection For Each cell In rng cell.Value = UCase(cell) Next cellEsto funcionó para mí, podría ser un poco engorroso con muchas celdas, pero aún debería funcionar.
function main(workbook: ExcelScript.Workbook, worksheetName: string) { let worksheet = workbook.getWorksheet(worksheetName); // Ge tthe Used Range on the given worksheet and all values. let usedRange = worksheet.getUsedRange(false); var values = usedRange.getValues(); // Now loop through each cell and upper case it. for (var row = 0; row < values.length; row++) { for (var col = 0; col < values[row].length; col++) { values[row][col] = values[row][col].toString().toUpperCase(); } } usedRange.setValues(values); }Nota : hay un parámetro para la función, por lo que se espera que se use a través de PowerAutomate/LogicApps, pero si no lo desea, debería poder cambiarlo para usar la hoja activa con relativa facilidad.
p.ej ...
function main(workbook: ExcelScript.Workbook) { let worksheet = workbook.getActiveWorksheet(); ... continue the rest of the code here ... }