Come si posiziona un oggetto casella di testo su una cella specifica durante l'automazione di Excel?

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

  •  09-06-2019
  •  | 
  •  

Domanda

Stiamo automatizzando Excel utilizzando VB.Net e provando a posizionare più righe di testo su un foglio di lavoro Excel che possiamo impostare per non stampare.Tra questi avremmo report stampabili.Possiamo farlo se aggiungiamo oggetti casella di testo e impostiamo l'impostazione dell'oggetto di stampa su false.(Se hai un altro modo, per favore indirizzami)

Il codice per aggiungere una casella di testo è:

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

ma il posizionamento è a punti.Abbiamo bisogno di un modo per posizionarlo su una cella specifica e dimensionarlo con la cella.Come possiamo scoprire dove metterlo quando sappiamo solo su quale cella metterlo?

È stato utile?

Soluzione

Se hai il nome o la posizione della cella, puoi fare:

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

Ciò aggiungerà una casella di testo sulla cella B3.Quando B3 viene ridimensionata, anche la casella di testo viene ridimensionata.

Altri suggerimenti

Quando copi e incolli una casella di testo, Excel posizionerà la nuova casella di testo su qualunque cella sia attualmente selezionata.Quindi puoi ottenere questo risultato molto facilmente semplicemente usando i comandi copia e incolla VBA.Ciò può essere particolarmente utile se utilizzerai molte caselle di testo molto simili, poiché stai effettivamente creando un modello di casella di testo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top