[问题] VBA如何新增文字方块到储存格中间

楼主: noworneverev (小朋友)   2018-02-18 11:35:41
软件: Excel
版本: 2016
想用VBA来新增文字方块到储存格中间,目前写到下面这样:
Dim textbox As String
textbox = "A"
Dim rng As Range: Set rng = Application.Selection
Dim cel As Range
For Each cel In rng
With ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, cel.Left +
(cel.Width / 2) - 3, cel.Top - cel.Height, 50, 50)
.TextFrame.Characters.Text = textbox
.TextFrame.AutoSize = True
End With
Next cel
在默认列高的状况下是没什么问题,
可是如果该列比较高的话,用Height来控制位置的话,新增的文字方块就会跑掉位置
想请问有什么解法呢?
感谢!
作者: soyoso (我是耀宗)   2018-02-18 11:59:00
将cel.height改减常数方式如https://i.imgur.com/vCtnYZL.jpg 测试是以减15原po要的置中是指https://i.imgur.com/HRrhPSX.jpg这样吗这是原文宏码在默认的列高16.5下所新增的文字方块https://i.imgur.com/vgqXWuz.jpg 这是减常数的方式所产生的文字方块,结果不是原po要的吗?如是要以https://i.imgur.com/1HYmAjU.jpg h栏的结果的话则以(50*0.42-cel.height)/2因autosize,改以(21-cel.height)/2如有可能多行(如L栏)的话,则以https://i.imgur.com/84R33Oy.jpg

Links booklink

Contact Us: admin [ a t ] ucptt.com