2017-01-13 85 views
0

嗨,我一直在尋找一種解決方案,將我的圖表(在同一工作表內)與這些值鏈接在一起。 爲此,我通常會選擇數據,進入公式(F2),按F9並輸入使用VBA取消鏈接Excel圖表

我的系列會變成數字。 我把這個自動化爲sendkeys,我知道還有另一個在線選項,但是我想把這個解決方案當作sendkeys。 基本上選擇Data> F2> F9> Enter。這工作正常,如果我手動。

我的VBA代碼看起來像這樣

ActiveChart.ChartArea.Select 
Application.SendKeys ("^{s}") 
ActiveChart.SeriesCollection(2).Select 
Application.SendKeys ("{f2}"), True 
Application.SendKeys ("{f9}"), True 
Application.SendKeys ("{f9}"), True 
Application.SendKeys ("~"), True 
Application.SendKeys ("^{s}") 

ActiveChart.ChartArea.Select 
ActiveChart.SeriesCollection(1).Select 
Application.SendKeys ("{f2}"), True 
Application.SendKeys ("{f9}"), True 
Application.SendKeys ("~"), True 

然而,第二組數據的一半仍是聯繫在一起的。

感謝您提前幫助 - LGR

回答

0

你可以做這樣的事情將Series.Values參考轉換爲Range,轉換爲實際的基礎值。

Sub foo() 
Dim cht As Chart 
Dim srs As Series 

Set cht = ActiveChart 

For Each srs In cht.SeriesCollection 

    srs.Values = srs.Values 

Next 

End Sub 
+0

謝謝。我現在已經在網上發現了其他幾種「解決方案」,它們都具有相同的目的。你們是迄今爲止我找到的最有效,最簡單和最短的解決方案,非常簡單。這似乎很容易,我不能想到其他人和我以前沒有想過這件事。 – LGR

+0

困擾我的唯一事情是,如果我刪除一行,x軸標籤將被刪除。例如。過程:5,如果刪除變成「」:5。也許你對我有另一種解決方案,在VBA中使用Charts對我來說是新的。 – LGR

+0

@LGR不太清楚問題可能是什麼,但我會建議以這種方式提出一個新的/單獨的問題,讓更多的人能夠幫助它(當然,如果我有時間的話,我也會嘗試檢查一下)。嘗試在您的解釋中添加屏幕截圖!乾杯 –

0

儘量避免使用發送密鑰。用這個代替:

ActiveWindow.Selection.ShapeRange(1).LinkFormat.BreakLink 

來源:http://www.vbaexpress.com/forum/showthread.php?45829-How-to-break-links-to-excel-chart

編輯:按照從大衛Zemens評論,這將工作的嵌入圖表,但不與Excel圖表對象

+1

這適用於嵌入式圖表,但它不適用於駐留在工作表中的普通Excel ChartObject。 –

+0

@DavidZemens將爲答案添加備註 – User632716