Autoscale cells excel vba – Escalar automáticamente celdas en Excel VBA
Estoy intentando escalar automáticamente mi tabla para que se ajuste siempre al tamaño de la ventana. Estoy intentando obtener el ancho de la ventana de Excel. Quiero obtener alguna diferencia de algún tipo cuando cambias el tamaño de la aplicación de Excel. Luego intento guardarlo en la variable “w” y compararlo con la última vez que se cambió el tamaño de la ventana “w_old”. Y el problema es que no estoy seguro de si estoy mirando en el lugar correcto cuando miro Application.Width porque cada vez que ejecuto el script, se ejecuta la declaración if incluso si no he cambiado el tamaño de mi ventana de Excel.
Dim w As Long
Dim w_old As Long
w = Application.Width
If (w <> w_old) Then
Columns("A:K").Select
ActiveWindow.Zoom = True
Range("A1").Select
w_old = w
End If
¡Gracias de antemano!
davy.ai
Parece que el problema está en el método utilizado para recuperar el ancho de la ventana de Excel. En lugar de utilizar
Application.Width
, prueba utilizandoApplication.Width / Application.Zoom
. Esto te dará el ancho real de la ventana, independientemente del nivel de zoom. Además, asegúrate de inicializarw_old
antes de ejecutar la sentencia if, de lo contrario siempre entrará en la sentencia if en la primera ejecución. El código actualizado se vería así:Esto debería comparar correctamente el ancho actual de la ventana de Excel con el ancho anterior, y solo entrar en la sentencia if si los dos valores son diferentes.