Terry asked in 電腦與網際網路軟體 · 1 decade ago

Excel巨集在不同sheet執行繪圖 , 15點

我在很多sheet上用各個sheet的資料在各個sheet上會直條圖 我用錄製巨集得方式錄製巨集,動作為在sheet1選取一些資料後繪製直條圖,但當我要在sheet2執行此聚集確有問題,因為巨集程式中有指定資料來源和繪圖為sheet1位置(ex: Source:=Sheets("Sheet1")),程式內容如下,請問如何修改巨集,可在其他sheet用該sheet資料繪圖,謝謝

Sub Macro3()

'

' Macro3 Macro

'

'

Range("C:C,F:F").Select

Range("F1").Activate

Charts.Add

ActiveChart.ChartType = xlColumnClustered

ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("C1:C28,F1:F28"), _

PlotBy:=xlColumns

ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"

End Sub

Update:

謝謝你得說明,但是對sheet2,sheet3...sheetn都需要改這敘述,太不方便,請問有可以不用改敘述,且適用sheet1,sheet2...sheetn得語法?

2 Answers

Rating
  • 1 decade ago
    Favorite Answer

    Range("C:C,F:F").Select

    Range("F1").Activate

    上面這兩行是不需要的

    假設要用 sheet2 的數據資料, 就改這一句:

    ActiveChart.SetSourceData Source:=Sheets("Sheet2").Range("C1:C28,F1:F28"), _

    PlotBy:=xlColumns

    假設要把圖畫在 sheet2 上, 就改這一句:

    ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet2"

    其他都不用改

    2008-06-12 16:05:17 補充:

    改成針對 Active 的工作表, 所以只須切換工作表就可以了:

    Sub Macro1()

    Dim ActSht As String

    ActSht = ActiveSheet.Name

    Charts.Add

    ActiveChart.ChartType = xlColumnClustered

    ActiveChart.SetSourceData Source:=Sheets(ActSht).Range("C1:C28,F1:F28"), _

    PlotBy:=xlColumns

    ActiveChart.Location Where:=xlLocationAsObject, Name:=ActSht

    End Sub

  • 小花
    Lv 5
    1 decade ago

    在程式碼第一行加上這一句

    a = ActiveSheet.Name

    這是設定A等於當前工作表名稱

    Sheets("Sheet1")

    Name:="Sheet1"

    改成

    Sheets(A)

    Name:= A

Still have questions? Get your answers by asking now.