我在excel中有一张图表。在此图表中有一个文本框。我想将此文本框放在图表的左上角。
当我手动执行此操作并读出属性.Top
和.Left
时,我会将-4
作为回复。
如果我尝试将这两个属性设置为-4
,则文本框会转到0
而不是-4
。
为什么我不能将texbox放在图表的左上角?
这里是文本框的一些外边距还是图表/图表区域的内边距?
以下是使用任何图表测试它的一些代码,其中插入了一个文本框:
Sub TextBoxPositionUpperLeftCorner()
Dim cho As ChartObject
Dim sh As Shape
For Each cho In ActiveSheet.ChartObjects
For Each sh In cho.Chart.Shapes
'reading out the position
Debug.Print "Top: " & sh.Top
Debug.Print "Left: " & sh.Left
'setting the position
sh.Top = -4
sh.Left = -4
Next
Next
End Sub
答案 0 :(得分:2)
好像你不能将Top / Left设置为负数。
但是可以增加位置以实现:
Sub TextBoxPositionUpperLeftCorner()
Dim cho As ChartObject
Dim sh As Shape
For Each cho In ActiveSheet.ChartObjects
For Each sh In cho.Chart.Shapes
'reading out the position
Debug.Print "Top: " & sh.Top
Debug.Print "Left: " & sh.Left
sh.IncrementTop -(sh.Top + 4)
sh.IncrementLeft -(sh.Left + 4)
'reading out the position
Debug.Print "Top: " & sh.Top
Debug.Print "Left: " & sh.Left
Next
Next
编辑经过多一点测试后,即使采用这种方法,最负面的是-4 / -4。