我需要在Excel工作表的中心放置一个图表,就在用户当前正在查看的位置。 显然0是纸张坐标系X轴的最开始,当我们向右移动时X增加。例如,用户可能正在查看J到Z列,我需要用户正在查看的工作表中的位置坐标,因此我可以将图表放在他面前。
如何获取相对于工作表坐标系的工作表“视口”的坐标? 是否还有其他更简单的方法可以将图表放在那里?
感谢。
答案 0 :(得分:4)
你可以试试像
这样的东西Sub test()
MsgBox Application.ActiveWindow.ActivePane.VisibleRange.AddressLocal
End Sub
在我的情况下,它打开内容为$A$271:$X$312
的msgbox
我希望这能帮到你。
编辑:
好的,试着用X Y坐标计算出来并得到以下结果:
Sub TestPixel()
With Range(ActiveWindow.ActivePane.VisibleRange.AddressLocal)
Debug.Print .Left, .Top
Debug.Print .Left + .Width, .Top + .Height
End With
End Sub
打印出左上角的x / y坐标和右下角的x / y坐标
编辑第2期:
花了几分钟时间,用我的testworkbook完成了你的任务。 这是makro:
Sub PositionDiagramm()
Dim x As Integer
Dim y As Integer
Dim height As Integer
Dim width As Integer
With Range(ActiveWindow.ActivePane.VisibleRange.AddressLocal)
x = .Left
y = .Top
width = .Width
height = .Height
End With
With ActiveSheet.Shapes("Diagramm 1")
.Top = y + ((height - .Height) / 2)
.Left = x + ((width - .Width) / 2)
End With
End Sub