¿Cómo se coloca un objeto de cuadro de texto sobre una celda específica al automatizar Excel?

StackOverflow https://stackoverflow.com/questions/66934

  •  09-06-2019
  •  | 
  •  

Pregunta

Estamos automatizando Excel usando VB.Net e intentando colocar varias líneas de texto en una hoja de cálculo de Excel que podemos configurar para que no se imprima.Entre estos tendríamos informes imprimibles.Podemos hacer esto si agregamos objetos de cuadro de texto y configuramos la configuración del objeto de impresión en falso.(Si tienes otra forma, por favor dirígeme)

El código para agregar un cuadro de texto es:

ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 145.5, 227.25, 304.5, 21#)

pero el posicionamiento es en puntos.Necesitamos una forma de colocarlo sobre una celda específica y dimensionarlo con la celda.¿Cómo podemos saber dónde colocarlo cuando sólo sabemos en qué celda colocarlo?

¿Fue útil?

Solución

Si tienes el nombre del celular o el puesto, puedes hacer:

With ActiveSheet
  .Shapes.AddTextbox msoTextOrientationHorizontal, .Cells(3,2).Left, .Cells(3,2).Top, .Cells(3,2).Width, .Cells(3,2).Height
End With

Esto agregará un cuadro de texto sobre la celda B3.Cuando se cambia el tamaño de B3, el cuadro de texto también lo hace.

Otros consejos

Cuando copia y pega un cuadro de texto, Excel colocará el nuevo cuadro de texto sobre la celda que esté seleccionada actualmente.Puede lograr esto muy fácilmente simplemente usando los comandos copiar y pegar de VBA.Esto puede ser particularmente útil si va a utilizar muchos cuadros de texto muy similares, ya que efectivamente está creando una plantilla de cuadro de texto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top