2015-05-18 59 views
0

我需要創建一個圖表來顯示不同人員隨時間的覆蓋範圍。例如,沒有標記的散點圖在每個時間段內顯示一個人將可用的一個系列。每個人都有不同的Y值(例如Joe = 1,Pat = 2,Kevin = 3)。目的是在時間是X軸的情況下可視化覆蓋範圍中的空白。使用相同的Y值創建多個系列的圖表

我已經找到了如何通過增加每個系列...

ActiveChart.SeriesCollection.NewSeries 
    ActiveChart.SeriesCollection(1).XValues = 「=Sheet1!$A$1:$B$1」 
    ActiveChart.SeriesCollection(1).Values = 「=Sheet1!$C$1:$D$1」 
    ActiveChart.SeriesCollection.NewSeries 
    ActiveChart.SeriesCollection(2).XValues = 「=Sheet1!$A$2:$B$2」 
    ActiveChart.SeriesCollection(2).Values = 「=Sheet1!$C$2:$D$2」 

...等等,但被手動分配X和Y值生成的代碼。

我需要做的是:

1)擁有所有的X和(繪製的圖表上帶Y值)動態基於行的工作表上(數行數將不總是2)以相同的方式格式化具有相同Y值的所有系列(例如,其中Y = 2的所有系列是紅線,並且Y = 1的所有系列都是藍線)。

我在想,我可以使用循環使用我的迭代/行號,直到有一個空的單元格,但我一直無法在這種情況下做的工作。

下一步是能夠在同一個圖表上添加來自多個工作表的數據。我發現一些代碼就像這樣...

Dim ws As String 
    For Each ws in ThisWorkbook 

是否會從所有工作表中獲取數據?

我想發佈一個我想要做的例子,但顯然我需要首先代表。這是一個鏈接。唯一的區別是我希望同一行上的所有內容都是相同的顏色(即在圖例中只有圖例中有2個對象)。 http://i280.photobucket.com/albums/kk185/navytoolmanshortfieldbreak/Graph%20Problem%201_zpszxpsgikn.jpg

更新:如果您無法看到照片,則有4行和4列數據。每行都包含一系列應該繪製爲水平線。前兩列是X座標,後兩列是Y座標。第一行示出了從1,1到3,1的線,從5,1到7,1的第二行,等等

1 3 1 1 
    5 7 1 1 
    2 4 2 2 
    7 10 2 2 

回答

1

答案1和2)該代碼將通過數據循環,並繪製它作爲你所描述:

' Select Nothing so that Excel doesn't "help" by adding its own series 
Range(Cells(ActiveSheet.UsedRange.Rows.Count + 1, ActiveSheet.UsedRange.Columns.Count + 1), _ 
     Cells(ActiveSheet.UsedRange.Rows.Count + 2, ActiveSheet.UsedRange.Columns.Count + 2)).Select 
ActiveSheet.Shapes.AddChart2(240, xlXYScatterLinesNoMarkers).Select 

' Add all of the desired series. 
Row = 1 
While Cells(Row, 1).Value <> "" 
    ActiveChart.SeriesCollection.NewSeries 
    ActiveChart.FullSeriesCollection(Row).Name = "Series" & Row 
    ActiveChart.FullSeriesCollection(Row).XValues = "=Sheet1!$A$" & Row & ":$B$" & Row 
    ActiveChart.FullSeriesCollection(Row).Values = "=Sheet1!$C$" & Row & ":$D$" & Row 
    Row = Row + 1 
Wend 

作爲回答您的非官方3)該代碼將遍歷所有工作簿的工作表:

Dim ws As Worksheet 
For Each ws In ThisWorkbook 
Next ws 
+0

編輯以顯示數據的採樣。實際的數據更加複雜,但用這些簡單的數字解決問題將使我得到我需要去的地方。謝謝Bobby。 – ShortFieldBreak

相關問題