我从三列数据创建了一个xy散点图--参见下面的数据示例和代码。代码是从外接程序运行的,而不是从活动工作簿运行的。
将SeriesCollection(1)放置到第二轴后,选择所绘制的线。根据Excel2007Help,ActiveChart.Deselect应该取消选择所有内容。但是当添加到我的代码中时,它什么也没做。.Deselect列在对象模型更改中,因为Office是图表对象的一种方法,状态为hidden。
我发现了各种各样的建议,包括选择一些单元格;或者使用SendKeys发送{ESC}。唯一可行的方法是首先启用屏幕更新,然后保护图表。(取消保护后不必移除所选内容,但便于进一步工作)。
有没有更好的方法,还是合理的解决办法?
Chart.Deselect在其他版本的Excel中工作吗?
最后的结果应该是,图表将在屏幕上可见,没有任何选择。
短数据样本
Time Amps Volts
04/26/2015 01:22:39 PM 4.9 53.4
04/26/2015 01:22:40 PM -0.9 53.2
04/26/2015 01:22:41 PM -1.5 53.4
04/26/2015 01:22:42 PM 8.7 53.4
04/26/2015 01:22:43 PM -2.9 53.3
04/26/2015 01:22:44 PM -3.2 53.2
04/26/2015 01:22:45 PM 11.3 53.8
04/26/2015 01:22:46 PM -3.8 53.3
04/26/2015 01:22:47 PM -3.2 53.3
04/26/2015 01:22:48 PM 11.4 53.6
04/26/2015 01:22:49 PM -3.2 53.3
04/26/2015 01:22:50 PM -2.8 53.2
04/26/2015 01:22:51 PM 5.7 53.3
04/26/2015 01:22:52 PM 7.5 53.5
04/26/2015 01:22:53 PM 2.1 53.3
04/26/2015 01:22:54 PM 2.3 53.4
04/26/2015 01:22:55 PM 2.5 53.3
04/26/2015 01:22:56 PM 2.4 53.4
04/26/2015 01:22:57 PM 2.3 53.4
04/26/2015 01:22:58 PM 1.9 53.5
04/26/2015 01:22:59 PM 2 53.3
04/26/2015 01:23:00 PM 2.3 53.3
04/26/2015 01:23:01 PM 2.7 53.5
04/26/2015 01:23:02 PM 2.5 53.4
04/26/2015 01:23:03 PM -2.4 53.4
04/26/2015 01:23:04 PM -4 53.3
04/26/2015 01:23:05 PM -3.5 53.3
04/26/2015 01:23:06 PM 4.1 53.4
04/26/2015 01:23:07 PM 9.4 53.6
04/26/2015 01:23:08 PM -5.1 53.3
04/26/2015 01:23:09 PM 9.8 53.6
04/26/2015 01:23:10 PM -5.2 53.2
04/26/2015 01:23:11 PM 9.7 53.5
04/26/2015 01:23:12 PM -5.5 53.2
04/26/2015 01:23:13 PM 9.8 53.6使用此代码:
Sub GraphEmeter()
Dim cS As Chart
Dim A As Axis
Application.ScreenUpdating = False
Set cS = ActiveWorkbook.Charts.Add
Set cS = ActiveChart
With cS
.SetSourceData Range("capture!R1").CurrentRegion, xlColumns
.ChartType = xlXYScatterLinesNoMarkers
Set A = .Axes(xlCategory)
With A
.CategoryType = xlCategoryScale
.BaseUnitIsAuto = True
.TickLabels.Orientation = 45
End With
.SeriesCollection(1).AxisGroup = 2
'deselect the chart area
'documented method
' ActiveChart.Deslect
'doesn't seem to work
'But this method does
Application.ScreenUpdating = True
.Protect
.Unprotect
End With
End Sub发布于 2015-04-27 15:40:40
--有答案的--
我添加了示例数据,并在代码中创建了一个外接程序。我确认要取消选择该系列,只需使用以下一行选择图表区域:
cS.ChartArea.Select--原来的答案--
对于OP不适用,但是当图表不是在图表工作表上,而是在标准工作表上时,它仍然可以工作
如果目标是简单地取消选择图表,那么您应该能够选择工作表上的其他任何内容(范围、对象等)。若要更改选定内容,请执行以下操作。我已经选择了单元格A1,但是您可以选择任何东西(例如,位于图表后面的单元格)。
ActiveSheet.Range("A1").Select发布于 2018-06-15 22:15:06
尝试ActiveChart.Deselect而不是ActiveChart.Deslect
发布于 2020-12-12 02:12:55
我用这段代码解决了这个问题。
.chart.refreshhttps://stackoverflow.com/questions/29881415
复制相似问题