使用vba,我希望能够添加它并使其位于特定范围内,例如A2:H8
。这可能吗?
我知道我可以选择合并一堆单元格并制作一个文本框,但是我希望用户可以更容易地移动,如果他们愿意的话。
现在我只是使用一个通用的添加功能,并试图在我想要的区域内获取它。但是,整个页面会因用户输入而发生变化,因此根据他们的工作情况,我需要将其放在不同的位置。如果我将它绑定到特定范围,无论用户做什么,它总是在完美的位置。
这是我目前的小代码片段:
Sub Macro1()
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 153.75, 88.5, 509.25, 272.25).Select
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "hello hello hello" & Chr(13) & "" & Chr(13) & "hello" & Chr(13) & "hi" & Chr(13) & "" & Chr(13) & "hello"
Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 18).ParagraphFormat.FirstLineIndent = 0
With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 18).Font
.NameComplexScript = "+mn-cs"
.NameFarEast = "+mn-ea"
.Fill.Visible = msoTrue
.Fill.ForeColor.ObjectThemeColor = msoThemeColorDark1
.Fill.ForeColor.TintAndShade = 0
.Fill.ForeColor.Brightness = 0
.Fill.Transparency = 0
.Fill.Solid
.Size = 11
.Name = "+mn-lt"
End With
Selection.ShapeRange(1).TextFrame2.TextRange.Characters(19, 1).ParagraphFormat.FirstLineIndent = 0
End Sub
答案 0 :(得分:1)
考虑一下:
Sub CoverRange()
Dim r As Range
Dim L As Long, T As Long, W As Long, H As Long
Set r = Range("A2:H8")
L = r.Left
T = r.Top
W = r.Width
H = r.Height
With ActiveSheet.Shapes
.AddTextbox(msoTextOrientationHorizontal, L, T, W, H).Select
End With
End Sub