要是设计到专业的数学领域的问题当然就要用他们来解决,但是有时候我们的需求就只是想看看这个数学方程式的图像,这个时候就没有必要费力去安装破解体积这么庞大的软件,其实我们日常使用的Excel就能够担当大任!下面就来详细讲解一下作图思路和具体步骤:
先看一下最终的效果演示:最终效果演示
步骤一:新建一个工作表,命名为方程式和作图数据,并按如图所示填好相应的内容:方程式表内容及参数填写作图数据表格内容填写步骤二:打开VBE编辑器(Alt+F11),或则在功能区打开,如下图所示:打开VBE编辑器插入一个模块,如下图所示:插入一个模块步骤三:双击插入的模块(默认名称为:模块1),粘贴以下两段代码,代码的具体含义在这就不做详细讲解了,如有需要,欢迎交流,共同进步。
作图代码:Sub 作图()Dim obReg As ObjectDim oMatch As ObjectDim length As Integerlength = (Sheets(“方程式”).Cells(2, 3).Value – Sheets(“方程式”).Cells(2, 2).Value) / Sheets(“方程式”).Cells(2, 4).ValueSet obReg = CreateObject(“vbscript.regexp”)Sheets(“作图数据”).Rows(“2:1048576”).ClearSheets(“方程式”).ChartObjects(“图表 3”).Activate ‘假设只有一个图表With ActiveChartFor i = .SeriesCollection.Count To 1 Step -1.SeriesCollection(i).DeleteNextEnd WithWith obReg.Global = True.IgnoreCase = True.Pattern = “[x]”End WithSheets(“作图数据”).Cells(2, 1).FormulaR1C1 = “=方程式!R2C2”Sheets(“作图数据”).Cells(3, 1).FormulaR1C1 = “=R[-1]C+方程式!R2C4”Sheets(“作图数据”).Cells(3, 1).AutoFill Destination:=Sheets(“作图数据”).Range(Sheets(“作图数据”).Cells(3, 1), Sheets(“作图数据”).Cells(length + 2, 1))For i = 0 To 9Sheets(“作图数据”).Cells(2, 2 + i).FormulaR1C1 = “=” & obReg.Replace(Sheets(“方程式”).Cells(2 + i, 1).Value, “RC[-” & i + 1 & “]”)Sheets(“作图数据”).Range(Sheets(“作图数据”).Cells(2, 2 + i), Sheets(“作图数据”).Cells(2, 2 + i)).AutoFill Destination:=Sheets(“作图数据”).Range(Sheets(“作图数据”).Cells(2, 2 + i), Sheets(“作图数据”).Cells(length + 2, 2 + i))NextActiveWorkbook.Names.Add Name:=”X_1″, RefersToR1C1:=”=OFFSET(作图数据!R1C1,0,0,方程式!R2C7,1)”For j = 1 To 10ActiveWorkbook.Names.Add Name:=”Y_” & j, RefersToR1C1:=”=OFFSET(作图数据!R1C” & j + 1 & “,0,0,方程式!R2C7,1)”NextActiveSheet.ChartObjects(“图表 3”).ActivateActiveChart.SetSourceData Source:=Sheets(“作图数据”).Range(“a1:b” & length + 2)For k = 2 To 10Application.Goto Reference:=”Y_” & kSelection.CopySheets(“方程式”).SelectActiveSheet.ChartObjects(“图表 3”).ActivateActiveChart.PasteNextSheets(“方程式”).ChartObjects(“图表 3”).ActivateActiveChart.Axes(xlValue).SelectActiveChart.Axes(xlValue).MinimumScale = Sheets(“方程式”).Range(“e2”).ValueActiveChart.Axes(xlValue).MaximumScale = Sheets(“方程式”).Range(“f2”).ValueActiveChart.Axes(xlValue).MajorUnit = Sheets(“方程式”).Range(“E5”).ValueActiveChart.Axes(xlValue).MinorUnit = Sheets(“方程式”).Range(“F5”).ValueActiveChart.Axes(xlCategory).SelectActiveChart.Axes(xlCategory).MinimumScale = Sheets(“方程式”).Range(“b2”).ValueActiveChart.Axes(xlCategory).MaximumScale = Sheets(“方程式”).Range(“c2”).ValueActiveChart.Axes(xlCategory).MajorUnit = Sheets(“方程式”).Range(“C5”).ValueActiveChart.Axes(xlCategory).MinorUnit = Sheets(“方程式”).Range(“D5”).ValueEnd Sub刷新代码:Sub 刷新()Dim obReg As ObjectDim oMatch As ObjectDim length As Integerlength = (Sheets(“方程式”).Cells(2, 3).Value – Sheets(“方程式”).Cells(2, 2).Value) / Sheets(“方程式”).Cells(2, 4).ValueSet obReg = CreateObject(“vbscript.regexp”)Sheets(“作图数据”).Rows(“2:1048576”).ClearWith obReg.Global = True.IgnoreCase = True.Pattern = “[x]”End WithSheets(“作图数据”).Cells(2, 1).FormulaR1C1 = “=方程式!R2C2”Sheets(“作图数据”).Cells(3, 1).FormulaR1C1 = “=R[-1]C+方程式!R2C4”Sheets(“作图数据”).Cells(3, 1).AutoFill Destination:=Sheets(“作图数据”).Range(Sheets(“作图数据”).Cells(3, 1), Sheets(“作图数据”).Cells(length + 2, 1))For i = 0 To 9Sheets(“作图数据”).Cells(2, 2 + i).FormulaR1C1 = “=” & obReg.Replace(Sheets(“方程式”).Cells(2 + i, 1).Value, “RC[-” & i + 1 & “]”)Sheets(“作图数据”).Range(Sheets(“作图数据”).Cells(2, 2 + i), Sheets(“作图数据”).Cells(2, 2 + i)).AutoFill Destination:=Sheets(“作图数据”).Range(Sheets(“作图数据”).Cells(2, 2 + i), Sheets(“作图数据”).Cells(length + 2, 2 + i))NextActiveWorkbook.Names.Add Name:=”X_1″, RefersToR1C1:=”=OFFSET(作图数据!R1C1,0,0,方程式!R2C7,1)”For j = 1 To 10ActiveWorkbook.Names.Add Name:=”Y_” & j, RefersToR1C1:=”=OFFSET(作图数据!R1C” & j + 1 & “,0,0,方程式!R2C7,1)”NextSheets(“方程式”).ChartObjects(“图表 3”).ActivateActiveChart.Axes(xlValue).SelectActiveChart.Axes(xlValue).MinimumScale = Sheets(“方程式”).Range(“e2”).ValueActiveChart.Axes(xlValue).MaximumScale = Sheets(“方程式”).Range(“f2”).ValueActiveChart.Axes(xlValue).MajorUnit = Sheets(“方程式”).Range(“E5”).ValueActiveChart.Axes(xlValue).MinorUnit = Sheets(“方程式”).Range(“F5”).ValueActiveChart.Axes(xlCategory).SelectActiveChart.Axes(xlCategory).MinimumScale = Sheets(“方程式”).Range(“b2”).ValueActiveChart.Axes(xlCategory).MaximumScale = Sheets(“方程式”).Range(“c2”).ValueActiveChart.Axes(xlCategory).MajorUnit = Sheets(“方程式”).Range(“C5”).ValueActiveChart.Axes(xlCategory).MinorUnit = Sheets(“方程式”).Range(“D5”).ValueEnd Sub步骤四:在方程式表中插入两个宏按钮,具体 *** 作如下:插入按钮(窗体控件)完成后效果如下:完成效果图步骤五:将控件按钮分别对应关联到我们刚才粘贴的两段代码:单击右键指定宏关联对应的宏步骤六:大功告成!只需在方程式一栏中填写自己想要作图的方程然后点击作图即可生成函数图像。
注意:当改变X、Y轴范围时点击作图按钮,只是改变方程时点击刷新按钮!!!注意事项
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)