将形状放入InputBox Value

问题描述 投票:0回答:1

我想做一个宏按钮,当你按下它时,会弹出一个输入框,你可以选择一个单元格。应在该单元格中放置一个形状。我有以下代码:

Sub TrialwithDate()


Dim rng As Range
Dim clLeft As Double
Dim clTop As Double
Dim clHeight As Double
Dim clWidth As Double


Set rng = Application.InputBox("Choose starting point", Type:=8)



Set cl = Range(rng)

clLeft = cl.Left
clTop = cl.Top
clHeight = cl.Height
clWidth = cl.Width

Set shp = ActiveSheet.Shapes.AddShape(msoShapeRoundedRectangle, clLeft, clTop, Range("K36").Value * 80, 37)

With shp
    .TextFrame2.TextRange.Text = "Test"
    .TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(0, 0, 0)
    .TextFrame2.TextRange.Font.Size = 11
    
    .Fill.ForeColor.RGB = RGB(146, 208, 80)
    .TextFrame.HorizontalAlignment = xlHAlignCenter
    .TextFrame.VerticalAlignment = xlVAlignCenter
End With


End Sub

我还在为这个宏做什么。放置此形状后,应再创建 3 个形状,这些形状从前一个形状的末尾开始。

例如:

我选择的单元格是F5。第一个形状从那里开始。该形状的长度是经过精确计算的,在下一个行中,下一个形状应从第一个形状的末尾开始。因此形状从 F5 到 J10,下一个形状从 J11 开始,依此类推。

非常感谢任何帮助,因为我两周前开始使用 VBA

excel vba range shapes inputbox
1个回答
0
投票

通过

For
循环完成它。

With shp
    .TextFrame2.TextRange.Text = "Test"
    .TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(0, 0, 0)
    .TextFrame2.TextRange.Font.Size = 11
    
    .Fill.ForeColor.RGB = RGB(146, 208, 80)
    .TextFrame.HorizontalAlignment = xlHAlignCenter
    .TextFrame.VerticalAlignment = xlVAlignCenter
    
    .Copy
    Dim i As Integer
    For i = 1 To 3
        Cells(cl.Row + 6 * i, cl.Column + 5 * i).Select
        ActiveSheet.Paste
    Next
End With

© www.soinside.com 2019 - 2024. All rights reserved.