2008-09-15 7 views
4

Wir automatisieren Excel mit VB.Net und versuchen, mehrere Textzeilen in einem Excel-Arbeitsblatt zu platzieren, das nicht gedruckt werden kann. Dazwischen hätten wir druckbare Berichte. Wir können dies tun, wenn wir Textboxobjekte hinzufügen und die Einstellung für das Druckobjekt auf false setzen. (Wenn Sie eine andere Art und Weise haben, mir bitte direkt)Wie platzieren Sie ein Textfeld-Objekt über eine bestimmte Zelle, wenn Sie Excel automatisieren?

Der Code ein Textfeld hinzuzufügen ist:

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

aber die Positionierung ist in den Punkten. Wir brauchen einen Weg, um es über eine bestimmte Zelle zu platzieren und es mit der Zelle zu bemessen. Wie können wir herausfinden, wo wir es hinstellen sollen, wenn wir nur wissen, in welche Zelle wir es legen sollen?

Antwort

8

Wenn Sie die Zellennamen oder Position haben, können Sie tun:

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

Dies wird eine Textbox über die Zelle B3 hinzufügen. Wenn B3 in der Größe geändert wird, ist das Textfeld auch.

+0

Ich wünschte, ich hätte das vor Jahren gewusst. Hätte mir mehrere große Kopfschmerzen erspart. –

0

Wenn Sie & ein Textfeld kopieren, platziert Excel das neue Textfeld über der Zelle, die gerade ausgewählt ist. Sie können dies sehr einfach erreichen, indem Sie einfach die VBA-Kopie & einfügen Befehle verwenden. Dies kann besonders nützlich sein, wenn Sie viele sehr ähnliche Textfelder verwenden, da Sie effektiv eine Textbox-Vorlage erstellen.

Verwandte Themen