Макрос Excel для заполнения столбца текстовыми полями activex - PullRequest
0 голосов
/ 25 января 2019

Я бы хотел заполнить диапазон E1: E10 текстовыми полями activex (которые идеально подходят по ячейкам), и которые бы меняли размер, если бы изменялись размеры ячеек.

Я получаю сообщение об ошибке «приложение или объект».

sub pastetextboxes()
For i=1 to 10
  set rng=activesheet.cells(i,5)
  set test=activesheet.oleobjects.add(classtype:="Forms.textbox.1", Link:=false, Displayasicon:=false, Left:=rng.left, top:=rng.top, width:=rng.width,height:=rng.height)
next i

end sub

1 Ответ

0 голосов
/ 25 января 2019

Если вы не против забыть элементы управления ActiveX, тогда:

Sub pastetextboxes()

For i = 1 To 10
    With ActiveSheet.Cells(i, 5)
        ActiveSheet.Shapes.AddTextbox msoTextOrientationHorizontal, .Left, .Top, .Width, .Height
    End With
Next i

End Sub

Эти фигуры изменятся в размерах, когда вы поиграете с шириной столбца или высотой строки.

Если вы хотите элементы управления ActiveX, вы можете сделать это так:

Sub pastetextboxes()

For i = 1 To 10
    With ActiveSheet.Cells(i, 5)
        Set test = ActiveSheet.OLEObjects.Add(classtype:="Forms.textbox.1", Link:=False, Displayasicon:=False, Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height)
        test.Placement = xlMoveAndSize
    End With
Next i

End Sub

Надеюсь, вы не будете бороться с ошибкой размера шрифта при использовании элементов управления ActiveX.

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