Hola a todos!
Hoy toca un post en el que vamos a trabajar varios elementos relacionados con la celda activa en la que nos encontremos en nuestra hoja de Excel.
Como viene siendo habitual, nos referiremos a typescript como lenguaje de trabajo. Imaginad que tenemos una celda seleccionada en nuestra hoja (1) de Excel. En concreto la celda seleccionada está posicionada en H7:
Para obtener la dirección actual utilizaremos el método .getAddress(), el resultado o salida es el siguiente: Hoja1!H7
var celdaActual = workbook.getSelectedRange().getAddress().toString();
Además de darnos la fila y la columna, nos ofrece la hoja actual, la Hoja1.
Para obtener el número de la fila, en este caso el 7, utilizaremos el siguiente código:
var fAct = workbook.getSelectedRange().getAddress().toString().split('!')[1];
var filaActiva: string
if (fAct.includes(':')) {
filaActiva = "LAS FILAS DEL RANGO SELECCIONADO SON: La fila inicial es " + fAct.toString().split(':')[0].replace(/\D/g, '') + " y fila final " + fAct.toString().split(':')[1].replace(/\D/g, '')
} else { filaActiva ="LA FILA SELECCIONADA ES " +fAct.replace(/\D/g, '');}
Lo he complicado un poco para que sea capaz de detectar la primera y última fila de un rango (solo el número). Lo importante es trabajar con la función Split para obtener el elemento anterior y siguiente al carácter indicado, en este caso los dos puntos (:) o la admiración (!). y posteriormente utilizar el objeto RegEx para eliminar las letras o los números de la cadena con un replace().
Y finalmente, para detectar la letra de la columna, basta con eliminar los números de la string de fAct y obtendremos la letra H. Al igual que en el caso anterior, lo he complicado un poco para obtener la letra de la primera columna y la última si hemos seleccionado un rango.
var columna: string
if (fAct.includes(':')) {
columna = "LAS FILAS DEL RANGO SELECCIONADO SON: La columna inicial es " + fAct.toString().split(':')[0].replace(/[0-9]/g, '') + " y columna final " + fAct.toString().split(':')[1].replace(/[0-9]/g, '')
} else { columna = "LA COLUMNA SELECCIONADA ES " + fAct.replace(/[0-9]/g, '')}
Y finalmente mostramos el resultado en la consola:
console.log("LA CELDA SELECCIONADA ES: " + celdaActual, filaActiva, columna)
Este es el resultado: