我的Excel文件中有一个命令按钮,它在特定位置添加了一个新文本框。现在我遇到了问题。我想在前一个文本框下自动添加文本框。就像我的截图一样。我手动创建了“Testeintrag”,当我点击顶部的+时,会创建“Titelname hier eingeben”。我用
手动放置了这个盒子ActiveSheet.Shapes.AddTextbox(msoTextOrientationUpward, 932, 270, 27, _
150).Select
但是当我添加另一个时,它刚刚超过我之前的那个,但是我希望它在我之前的那个之下创建下一个,依此类推。我怎么能这样做?
这就是我的整个宏观:
Private Sub CommandButton1_Click()
ActiveSheet.Shapes.AddTextbox(msoTextOrientationUpward, 932, 270, 27, _
150).Select
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = _
"Titelname hier eingeben"
End Sub
答案 0 :(得分:2)
Edit2:根据新要求更新了代码。
Option Explicit
Sub addayetnothertextbox()
Dim mybox
Dim top, left, height, width, margin
margin = 20
With ThisWorkbook.ActiveSheet.Shapes
left = .Item(.Count).left
top = .Item(.Count).top + .Item(.Count - 1).height + margin
width = .Item(.Count).width
height = .Item(.Count).height
Set mybox = .addtextbox(msoTextOrientationUpward, left, top, width, height)
End With
End Sub
答案 1 :(得分:0)
由于这种方法对我来说很复杂,我创造了一个简单的替代方案。
Private Sub CommandButton1_Click()
Dim Left As Double, Top As Double
With ActiveSheet
Left = ActiveCell.Left
Top = ActiveCell.Top
ActiveSheet.Shapes.AddTextbox(msoTextOrientationUpward, Left, Top, 27, _
190).Select
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = _
"Titelname hier eingeben"
End With
End Sub
所以我必须选择一个单元格然后点击“添加”-Button。然后,它会在活动单元格所在的位置添加一个大小为190x25的文本框。