Quiero establecer el valor para las celdas por VBA. He buscado en Google y ver algunos de resolución:No puedo VBA escribir datos en celdas en Excel 2007/2010 dentro de una función
Sheets("SheetName").Range("A1").value = someValue
Sheets("SheetName").Cells(1,1).value = someValue
Con este tipo de código, que sólo puede leer datos de la celda A1, pero no puedo establecer un nuevo valor a la misma.
actualización
El código para establecer valor de la celda A1 se pone dentro de un Function
de la siguiente manera.
Function abb()
Sheets("SheetName").Range("A1").value = 122333
abb = 'any thing'
End Function
En la celda B2, configuré =abb()
y presioné enter. Obtengo #VALOR pero no pasa nada en A1.
Poniendo este código en una macro, funciona.
Mi pregunta es, ¿cómo hacer A1 tienen valores dentro de una función?
Tiene dos opciones. Puede ejecutarlo como una subrutina o utilizar la solución temporal del temporizador UDF desde http://stackoverflow.com/q/8520732/641067. El primero es más fácil. – brettdj
Si desea una función, devuelva algo en A1, entonces la llamada a la función debe ingresarse en A1. Esa es la forma en que Excel trabaja. –
¿Por qué no atrapa este cambio en B2 con un evento de cambio de hoja y luego rellena A1? Desde su código, la función no se actualizará ya que no tiene ningún argumento. – brettdj