Charts 如何在Excel工作表中获取当前视图端口的坐标?
我需要将图表放在Excel工作表的中心,即用户当前正在查看的位置。 显然,0是图纸坐标系X轴的起点,X随着我们向右移动而增加。例如,用户可能正在查看J到Z列,我需要用户在工作表中查看位置的坐标,这样我就可以将图表放在他正前方 如何获取图纸“视口”相对于图纸坐标系的坐标? 有没有其他更简单的方法把图表放在那里Charts 如何在Excel工作表中获取当前视图端口的坐标?,charts,excel,viewport,vba,Charts,Excel,Viewport,Vba,我需要将图表放在Excel工作表的中心,即用户当前正在查看的位置。 显然,0是图纸坐标系X轴的起点,X随着我们向右移动而增加。例如,用户可能正在查看J到Z列,我需要用户在工作表中查看位置的坐标,这样我就可以将图表放在他正前方 如何获取图纸“视口”相对于图纸坐标系的坐标? 有没有其他更简单的方法把图表放在那里 谢谢。你可以试试类似的东西 Sub test() MsgBox Application.ActiveWindow.ActivePane.VisibleRange.AddressLoc
谢谢。你可以试试类似的东西
Sub test()
MsgBox Application.ActiveWindow.ActivePane.VisibleRange.AddressLocal
End Sub
在我的例子中,它打开msgbox,内容为$A$271:$X$312
我希望这对你有帮助
编辑:
好的,试着用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:
只花了几分钟,就用我的测试工作簿完成了你的任务。
这是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
你可以试试类似的东西
Sub test()
MsgBox Application.ActiveWindow.ActivePane.VisibleRange.AddressLocal
End Sub
在我的例子中,它打开msgbox,内容为$A$271:$X$312
我希望这对你有帮助
编辑:
好的,试着用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:
只花了几分钟,就用我的测试工作簿完成了你的任务。
这是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
让我再靠近一步,谢谢。但我需要可见范围的坐标(以像素为单位),因为图表需要屏幕坐标。有什么想法吗?很好。对代码的一些注释。首先,应该使用
Dim x作为整数,y作为整数
等等。它不像你写的那样工作。第二,你应该用英语写你的VAR,而不是德语,这对于任何非德语的人来说都会更容易阅读,谢谢你对Dim声明的评论。我刚刚读到没有作为类型的变量被声明为变量。我不知道。对于变量名称:由于这是一个英文QA网站,我同意这一点。让我更进一步,谢谢。但我需要可见范围的坐标(以像素为单位),因为图表需要屏幕坐标。有什么想法吗?很好。对代码的一些注释。首先,应该使用Dim x作为整数,y作为整数
等等。它不像你写的那样工作。第二,你应该用英语写你的VAR,而不是德语,这对于任何非德语的人来说都会更容易阅读,谢谢你对Dim声明的评论。我刚刚读到没有作为类型的变量被声明为变量。我不知道。对于变量名称:由于这是一个英文QA网站,我同意这一点。