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