我的任务是'在Excel中创建饼图,然后在matlab中显示它'。VBA + Matlab:饼图故障
,因为我觉得,我有两个烦恼:
1)这是正确的图表创建的图表? (A1-A6是名字,B1-B6是数字)。
好的,这个功能工作。
Function CreateChart() As Excel.Chart
Dim title As String
title = "One"
Dim Book As Workbook
Set Book = ThisWorkbook
Dim new_sheet As Excel.Worksheet
Set new_sheet = Book.Sheets(1)
Dim new_chart As Excel.Chart
Set new_chart = Charts.Add()
ActiveChart.ChartType = xlPie
ActiveChart.SetSourceData Source:=new_sheet.Range("A1:B6"), _
PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAutomatic, Name:=title
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = title
End With
Set CreateChart = new_chart
End Function
2)如何与此过程(在未来的互动 - 用matlab 功能,返回图)
,并在MATLAB得出这样的饼图?
function chart = CreateChart(DataMatrix)
pie = actxserver('Excel.Chart');
all_pies = actxserver('Excel.Charts');
pietype = actxserver('Excel.XlChartType');
pie = all_pies.Add();
pie.ChartType = pietype.xlPie;
% here is a trouble to put data from matrix
pie.SetSourceData Source DataMatrix %hm.. strange
end
此代码不起作用! (我不知道如何改写串
ActiveChart.SetSourceData Source:=new_sheet.Range("A1:B6"), PloBy = xlColumns
)
P.S:我觉得这是更好地从Excel文件加载脚本,并返回图表。
但是如何在matlab中使用这个图表? (并绘制它)
永远不要说“这段代码不起作用”。相反,解释*如何*它不起作用。它实际上做了什么?你希望它会做什么,为什么?如果出现错误消息,那么整个错误消息究竟是什么意思? –
你的第一段代码引用了一个叫做'new_sheet'的东西,它看起来没有被定义在任何地方。它意味着是'new_chart'还是'Sheet'或什么的? –
@GarethMcCaughan。 我正确的问题。但我有一个问题,VBBA脚本:如何分配'setSourceData源'一个数组变量?可能吗? (源定义为范围) – gaussblurinc