Как разместить текстовое поле над определенной ячейкой при автоматизации Excel? - PullRequest
4 голосов
/ 16 сентября 2008

Мы автоматизируем Excel, используя VB.Net, и пытаемся разместить несколько строк текста на листе Excel, который мы можем не печатать. Между ними у нас будут печатные отчеты. Мы можем сделать это, если добавим объекты текстового поля и установим для параметра печати значение false. (Если у вас есть другой способ, пожалуйста, направьте меня)

Код для добавления текстового поля:

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

но позиционирование в пунктах. Нам нужен способ разместить его над определенной ячейкой и определить его размер. Как мы можем узнать, куда его поместить, когда знаем, в какую ячейку его поместить?

Ответы [ 2 ]

8 голосов
/ 16 сентября 2008

Если у вас есть имя ячейки или позиция, вы можете сделать:

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

Это добавит текстовое поле над ячейкой B3. При изменении размера B3, текстовое поле также.

0 голосов
/ 16 сентября 2008

Когда вы копируете и вставляете текстовое поле, Excel помещает новое текстовое поле поверх любой выбранной ячейки. Так что вы можете достичь этого очень просто, просто используя команды VBA копирования и вставки. Это может быть особенно полезно, если вы собираетесь использовать много очень похожих текстовых полей, поскольку вы эффективно создаете шаблон текстового поля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...