2016-12-01 63 views
0

道歉,標題略有誤導。而不是在excel中切換行/列(選擇一個圖形,然後在設計選項卡上,單擊「切換行/列」),我想最初強制它,減輕需要改變。Excel圖表強制來自數據源的行/列

我的代碼如下,將另一列的行/列已自動切換:

Sub InsertBar(rngToPrint As Range, lngTopleft As String, BottomLeft As String) 
    Dim strRange As String 
    Dim rngChart As Range 
    Dim myChart As Chart 

    lngStartRow = Sheets(rngToPrint.Worksheet.Name).Range(lngTopleft).Row 
    lngEndRow = Sheets(rngToPrint.Worksheet.Name).Range(BottomLeft).Row 

    Sheets(rngToPrint.Worksheet.Name).Activate 
    'Correct 
    'Sheets(rngToPrint.Worksheet.Name).Range("$A$" & CStr(lngStartRow) & ":$D$" & CStr(lngEndRow)).Select 

    'Shows Flipped Axis 
    Sheets(rngToPrint.Worksheet.Name).Range("$A$" & CStr(lngStartRow) & ":$E$" & CStr(lngEndRow)).Select 

    Set myChart = ActiveSheet.Shapes.AddChart(xlColumnClustered, 500, 10, , 175).Chart 

    With myChart 
     .ChartArea.Format.TextFrame2.TextRange.Font.Size = 8 
     .HasTitle = True 
     .ChartTitle.Text = rngToPrint.Worksheet.Name & " Receiving Sim Stats - (Today Only)" 
     .SeriesCollection(1).Name = Range("B" & lngStartRow - 1).Value 
     .SeriesCollection(2).Name = Range("C" & lngStartRow - 1).Value 
     .SeriesCollection(3).Name = Range("D" & lngStartRow - 1).Value 

    'Dataseries which has just been added 
     .SeriesCollection(4).Name = Range("E" & lngStartRow - 1).Value 
    End With 
End Sub 
+0

湯姆,我多次從Excel本身獲得幫助。我開始一個宏錄製,手動執行我想編程的動作並停止錄製。然後,有一個由Excel創建的模塊,其中包含以編程方式執行我手動執行的所有代碼。我想如果你嘗試一下,你會得到你的問題的答案。 – FDavidov

回答

0

對於任何人有興趣,我最終找到了答案是這樣的:

With myChart 
     .PlotBy = xlColumns 

或者,如果您想以其他方式切換:

myChart.PlotBy = xlRows