2017-09-19 85 views
0

我是新增的宏函數。我一直試圖通過宏函數在Excel中的Subject_name字段(X,Y,Z)上插入餅圖。用戶應該能夠在單擊宏命令按鈕時繪製該圖。基本上,它應該計數,然後使用該數字來繪製圖表。在Excel宏函數中插入餅圖

這裏是當前數據的例子:

Channel_Type | Channel_Category | Category | **Subject_Name** 
    MICROBLOG   General   A   X 
    Forum    General   A   Z 
    BLOG    General   A   Y 
    FORUM    General   A   X 
    MICROBLOG   General   A   Z 
    BLOG    General   A   Z 

這裏是所期望的結果:

X:2 | Y:1 | Z:3

enter image description here

這是我之前試過繪製圖形的整個頁面,但我不確定如何只選擇一列:

Option Explicit 

Sub Example() 
Dim cht As ChartObjects 
For Each cht In Worksheets(1).ChartObjects 

Next cht 
cht.Chart.ChartType = xlPie 


End Sub 

我一直停留一段時間。感謝任何幫助。

+1

(1)所有這一切首先是不是一個自由的編碼服務,所以你需要向我們展示你的代碼,並告訴在那裏你卡住了(讀作[問])(2)你有沒有嘗試在創建此圖表時使用宏記錄器,以便您瞭解如何開始編碼宏。 (3)我想你需要首先計算百分比,所以這將是你的第一個任務(我會用公式而不是VBA)我也看到沒有必要在這裏我認爲所有的事情都可以用公式完成。 –

+0

感謝您的評論。我的道歉不夠清楚。我編輯了這個問題。我嘗試使用VBA,因爲它應該在點擊命令按鈕後自動繪製圖表。 – Faheera

+0

你的問題仍然不清楚。在不解釋任何內容的情況下發布代碼將不起作用我的猜測是你的代碼無所事事。我建議了一些事情,但你甚至沒有嘗試過其中的一種(我們會幫助你,但我們不會爲你做這項工作)。所以再次,(1)計算(在工作表中的公式)您想要在圖表中顯示的值。這是需要的第一步,沒有這些值沒有圖表! (2)手動生成圖表。 (3)然後按照我的建議(在生成圖表時)使用宏記錄器,以瞭解如何啓動代碼。 –

回答

0

考慮在包含最後一個計數列的表中設置數據。您可以在此輸入= 1(假定每行都是唯一記錄),並且每行都會自動填充。在「主題名稱」和「計數」字段之外創建數據透視圖(餅圖)。然後,您可以將數據透視表刷新到命令按鈕(如果您必須使用VBA),並且圖表將在按鈕按下時更新。 Excel表格中的數據意味着它也將添加新行。

1

在繪製圖表之前,您需要彙總數據並提供要在圖表中繪製的數字。圖表不會自動執行此操作,並且沒有圖表可以繪製文本值。

有很多方法可以將數據彙總到餅圖所需的三個數值中,例如使用Countif的透視表或公式。或者你可以編寫VBA來遍歷文本值並將計數聚合成三個變量。

一旦數字已經生成,您可以使用它們來創建圖表。

以上任何一項都可以手動完成或使用VBA完成。如果使用Pivot方法,甚至可能不需要VBA。這取決於你的情況。

0

您可以在不使用VBA的情況下完成此操作,甚至可以自動更新。

H2中的公式是=COUNTIF(D:D,G1)並複製到H4。 圖表只是手動插入通過菜單:

  • 選擇G1:H4
  • 菜單=>插件=>圖表(選擇2維圓)
  • 選擇模板你喜歡

這如果添加AD列中的條目,圖表將自動更新。

沒有VBA!