Excel 键盘能够更改显示的动态图表范围线中的值

Excel keyboard ability to change a value in a displayed dynamic chart range line

我计划将由 20 个值组成的图表绘制线设置为动态图表范围。然后我可以手动进入 sheet 并一次更新这些值,图表将更改其显示。

但是我希望能够,而不是手动更改 sheet 值; 1. 将光标移动到线上显示的点之一 [使用鼠标?]。 2. 使用up/down方向键改变点的值[到点移动到的y轴的值]。使用箭头键移动点的增量值 up/down 可以是 sheet 中的可调值。 3. 随着点值的变化,线应该使用范围内最新更新的 20 个值重新绘制。

谢谢。

还没有尝试过。只是我想在可能的应用程序中使用的想法。

此更改没有代码。

问题摘要详细说明了结果。

P.S。由于我得到了 -1 票,我认为我应该添加更多关于这在现实生活中的用途。

我患有黄斑变性,但在多年前减缓了它的恶化速度,并定期对一只坏眼进行注射。多年来,最初的 Amsler Grid 一直被患者手动使用来检查病情是否恶化,因此他们可以在病情恶化之前快速看到他们的 Eye Doc 进行注射。最近,已经制造出可以测试病情恶化的机器,并将其报告给用户 and/or 他们的医生。然而,这些机器很昂贵。而且阿姆斯勒网格结果非常主观。

我的想法是开发一个 Excel sheet 图表,用一条可以通过中心点以任何角度显示的直线代替阿姆斯勒网格,并允许任何 Excel 用这个动态替换来测试他们的眼睛。阿姆斯勒网格在中心有一个点和一堆水平和垂直的网格线。你用一只眼睛遮住另一只眼睛,看着中心的点,然后主观地判断你是否能完美地看到网格线,它们是否看起来扭曲了。

我想要做的是有一个图表,用户可以在图表上有选择地发现线条的任何扭曲部分,单击线上的扭曲点,然后 "move" 要对齐的点用户对该行其余部分的看法。用户 "straightened" 出线后,他提交了。然后,该逻辑会反转校正后的线 [实际上,用户在线上的点移动会对其进行反向扭曲],然后将这条线通过电子邮件发送给相关医生。然后,该文档可以通过将其与同一用户过去通过电子邮件发送的行进行比较,并与用户开始使用的完美直线进行比较,从而确定失真有多严重,并且可以预约办公室访问。

我可以处理通过点显示直线的最佳拟合二次逻辑,从线性开始,然后拟合用户扭曲的结果。我只需要有关最初提出的问题的帮助。

所以这是我对此的看法(也许有更优雅的方法),我猜它对你想要的东西过于简单化了,并不是你所有的问题都得到了回答,但也许你会实现其中的一些。

1) 单独创建一个图表 sheet,我的折线图示例数据:

2)赋码给Private Sub Chart_ActivatePrivate Sub Chart_Deactivate,例如:

Private Sub Chart_Activate()

Application.OnKey "{UP}", "GoUp"
Application.OnKey "{DOWN}", "GoDown"

End Sub

Private Sub Chart_Deactivate()

Application.OnKey "{UP}", ""
Application.OnKey "{DOWN}", ""

End Sub

3) OnKey 将激活两个名为 GoUpGoDown 的模块,我将它们写为如下(也许可以做得更好)

Sub GoUp()

If TypeName(Selection) = "Point" Then
    For Each pt In ActiveChart.SeriesCollection(1).Points
        x = x + 1
        If pt.Name = Selection.Name Then
            With ThisWorkbook.Sheets("Sheet1")
                .Range("A" & x).Value = .Range("A" & x).Value + 1
            End With
            Exit For
        End If
    Next pt
End If

End Sub

Sub GoDown()

If TypeName(Selection) = "Point" Then
    For Each pt In ActiveChart.SeriesCollection(1).Points
        x = x + 1
        If pt.Name = Selection.Name Then
            With ThisWorkbook.Sheets("Sheet1")
                .Cells(x, 1) = .Cells(x, 1) - 1
            End With
            Exit For
        End If
    Next pt
End If

End Sub

如果需要,将 +1 和 -1 更改为指定的变量。

4) 选择一个点时按向下或向上箭头的结果: