2013-02-11 48 views
0

我有一個使用VBA創建圖表的Excel工作表。問題在於生成圖表後,我將其Shape設置爲內置的Shape樣式。但是當我執行下面的代碼時,沒有任何反應。Excel Chart Shape不適用

ActiveSheet.Shapes("AdoptChart").Select 
ActiveSheet.ChartObjects("AdoptChart").Activate 
ActiveSheet.Shapes("AdoptChart").ShapeStyle = msoShapeStylePreset22 

當該行執行ActiveSheet.Shapes("AdoptChart").ShapeStyle = msoShapeStylePreset22,該.ShapeStyle財產沒有得到這條線是0之前和執行這條線仍然是0。

後,這是我得到的代碼,即更新通過錄制宏和手動設置圖表形狀樣式。

我使用Excel 2010中,但Excel文件是2003年一個(我運行它在兼容模式下)。

編輯:這是我後手動選擇了形狀宏。

Sub shape() 
' 
' shape Macro 
' 

' 
    ActiveSheet.Shapes("AdoptChart").ShapeStyle = msoShapeStylePreset22 
    Range("I7").Select 
End Sub 
+0

最穩定的Excel版本(對我而言,至少對於我所知道的大多數人)是2003年。那麼2010年。那麼'1.'最初是在2003年做過Chart工作嗎? '2.'你是否想要改變'Chart DataLabels'的Chart的'ShapeStyle'?如果數據標籤,那麼'ShapeStyle'不被支持。 '3.'你可以嘗試在新的工作表中記錄一個相同的宏,看看它是如何工作的? – bonCodigo 2013-02-11 06:01:42

回答

0

根據我的意見,我建議您錄製一個新的Excel 2003工作簿的宏,在兼容模式下於2010年打開。 So you can utilize the 2010 Ribbon as shown in this reference.然而,它是非常重要的是要知道哪個版本的Excel,你打算使用這些圖表前進。是2010年還是2003年?2007年新增ShapeStyle ...

2。在格式選項卡上,執行下列操作之一:

在當前選擇組中,單擊格式選擇,然後在格式對話框中選擇所需的格式選項。在「形狀樣式」組中,單擊「更多」按鈕按鈕圖像,然後選擇一種樣式。

Excel功能區圖像:

enter image description here

在形狀樣式組中,單擊形狀填充,形狀輪廓或形狀效果,然後選擇你想要的格式選項。

Check on this article in John Peltier's site,2007,2003之間的代碼比較是非常豐富的。那麼你爲什麼不把作爲工作簿保存到EXCEL 2010

Sub FormatConnector2003(oConnector As Shape) 
    With oConnector 
    If .Connector Or .Type = msoLine Then 
     ' rough approximation of the Excel 2007 preset line style #17 
     .Line.EndArrowheadStyle = msoArrowheadTriangle 
     .Line.Weight = 2 
     .Line.ForeColor.RGB = RGB(192, 80, 77) 
     .Shadow.Type = msoShadow6 
     .Shadow.IncrementOffsetX -4.5 
     .Shadow.IncrementOffsetY -4.5 
     .Shadow.ForeColor.RGB = RGB(192, 192, 192) 
     .Shadow.Transparency = 0.5 
     .Visible = msoTrue 
    End If 
    End With 
End Sub 

Sub FormatConnector2007(oConnector As Shape) 
    With oConnector 
    If .Connector Or .Type = msoLine Then 
     .Line.EndArrowheadStyle = msoArrowheadTriangle 
     .ShapeStyle = msoLineStylePreset17 
    End If 
    End With 
End Sub 
+0

這將是2010年(但因爲我有問題完全轉換到2010年,因此我在兼容模式下運行它。)請參閱編輯 – Trum 2013-02-11 06:16:10

+0

請參閱編輯 – bonCodigo 2013-02-11 06:48:28

+0

您提供的代碼,沒有設置msoShapeStylePreset22而不是msoLineStylePreset17我之所以沒有將它保存爲2010,是因爲如果我將它轉換爲2010版本,那麼加載項不起作用 – Trum 2013-02-11 06:54:03

相關問題