我如何创build一个文本框在Excel中填写一个特定的范围?

使用vba,我希望能够添加它,并使其位于特定的范围内,例如A2:H8 。 那可能吗?

我知道我可以select合并一堆单元格,然后制作一个文本框,但是我希望如果用户愿意的话,可以让用户更容易移动。

现在我只是使用一个通用的add函数,并试图把它放在我想要的地方。 但是,由于用户的input,整个页面将会改变,所以根据他们所做的工作,我需要它在不同的地方。 如果我把它绑定到一个特定的范围,那么无论用户做什么,它都可以处在一个完美的地方。

这是我目前的小代码片段:

 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 

考虑一下:

 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