2014-07-18 101 views
0

說,我有一個函數創建圖表創建圖表:VBA激活如圖不同的功能

Sub CreateChart() 

Dim sh As Worksheet 
Dim chrt as Chart 

Set sh = ActiveWorkbook.Worksheets("Sheet1") 
Set chrt = sh.Shapes.AddChart.Chart 

End Sub 

如何激活這個圖表中不同的功能,我想將它移動到一個特定的細胞?我正在使用下面的代碼,但它一直給我錯誤,並不會激活圖表。我甚至給圖表一個標題,並試圖使用它的標題t激活它,但它不會識別名稱:

Sub MoveChart() 

ActiveSheet.ChartObjects("chrt").Activate 
With ActiveChart.Parent 
.Left = Range("N2").Left 
End With 

回答

0

爲什麼激活它?您可以直接使用您的存儲對象CHRT,您可以傳遞到參數化MoveChart子程序:

Sub MoveChart(ByVal chrt As Excel.Chart) 

     With chrt.Parent 
       .Left = Range("N2").Left 
     End With 

End Sub 

與現在你可以移動任何圖表你想要的差別。

後來編輯

因爲圖表仍不願透露姓名的第二個宏失敗。試圖通過VBA變量的名稱訪問圖表並不能解決問題。所以,試試這個:

Sub CreateChart() 

      Dim chrt As Shape 

      With ActiveWorkbook.Worksheets("Sheet1").Shapes 
        Set chrt = .AddChart() 
        Let chrt.Name = "New chart" 
      End With 

    End Sub 

    Sub MoveChart() 

      With ActiveWorkbook.Worksheets("Sheet1") 
        .ChartObjects("New chart").Left = .Range("N2").Left 
      End With 

    End Sub 

不要忘了修改代碼以使用其他圖表名,其他工作表名稱等

+0

當我嘗試這一點,我無法運行宏。它不會在宏列表中顯示爲宏。 – art123456

+0

哦,我想你不想編程複雜的東西......通常激活表和對象不是很有效。但是,好的,您編寫的代碼中的錯誤是圖表名稱設置不正確。我會回來寫你的方式代碼。 –

+0

非常感謝!我對VBA相當陌生,現在我只編寫了大約3周的時間,所以我有很多東西需要學習。但是,是的,現在沒有複雜的東西哈哈。 – art123456