Excel中的宏应用.ppt
宏的定义 宏是一系列操作的组合,是指程序员事先定义的特定的一组“指令”,这样的指令是一组重复出现的代码的缩写,此后在宏指令出现的地方,系统总是自动的把他们替换成相应定义的操作或代码块。Excel 2007中找到宏组件 2003中的宏组件可在“工具”栏下找到,而在2007版中需。要在“开发工具”栏下找到。见图1 。 图1宏的安全性设置 如果不对宏的安全性进行设置,你所录制的宏可能无法应用。这时,需要点击图1中的“宏安全性”,弹出图2,进行设置。选“宏设置”,点击“启用所有宏”,点击确定。有时可能仍无法使用上次开发的宏。这时可推出excel,再次打开excel,就可以使用上次开发的宏了。宏的录制 录制宏的目的是为了调用宏,调用宏的目的是为了让电脑解决一系列重复的问题,并形象地表示出来。所以在录制宏之前必须先解决上面的问题。先举一个简单的例子。已知方程: 求该方程在不同 a、b值时的解,求取a=0-10 间隔 0.5,b=1、2、3的共213个解。03003bxax宏的录制 录制前,先根据要解决的问题,建立 excel 表格,如下:这里,x、a、b的初值可以任意给定,一般建议给定1为好,F项是公式,和VB编程相当。为了保证录制正确的宏,一般先将需要录制的宏操作一遍。此问题是单变量求解问题。宏的录制 单变量求解:点击“数据”,“假设分析”,“单变量求解”,如图3所示。 图3 系统弹出图系统弹出图4:宏的录制目标单元格选D2, 目标值输入0,可变单元格选A2,点击“确定”,可得A2单元格的值为为6.64453,为方程解,为方程解,如果小于点过多,如果小于点过多,可将可将A列向右拉,就会增加小于点列向右拉,就会增加小于点。 图图4宏的录制 做完了前面的准备工作,将X值先恢复到1,点击图1中的“录制宏”系统弹出图5。 默认宏名为默认宏名为Macro1,输输入快捷键为入快捷键为a,点击点击“确确定定”,将原来的单变量,将原来的单变量方程求解过程重复一遍。方程求解过程重复一遍。图5宏的录制 得到方程解后,再点击“开发工具”,点击停止录制,完成一个宏的完整录制过程。图6宏的调用 单击“开发工具”,点击“插入”,出现“表单控件”,点击“表单控件”中的第一个按钮(窗体按钮),出现”+”号。图7宏的调用将出现的”+”号移动至适当位置,如图按钮7(原来没有的左上角,按住拖动成一定大小的矩形,此时系统自动产生“按钮7”字样及“指定宏”对话框,注意“7”不一定,也有可能是1、2、3,跟前面已输入的按钮有关。图8宏的调用 点击图8中的“Macro1”,图8中的“指定宏”转变成图9,表明刚才插入的“按钮7”已和我们录制的宏“Macro1”绑定,点击确定出现图10图9将图10中的“按钮7”3个字删除,输入“单变量方程求解”7个字,如无法操作时,可通过点击右键,在功能菜单单中选择“编辑文字”,光标移出按钮,点击,出现图11。图10图11 注意图10,11中的a,b的系数已变为2,3,这时我们在调试单变量方程计算过程中改变的数字,不会影响宏的应用,现在我们可以任意改变a,b的值,当然需要保证方程:03003bxax 有实数根,否则无解。,现输入a=10,b=2,点击“单变量方程计算”,见图12。如果宏的应用到此为止,那么,还没有充分发挥宏的威力,只不过减少了一些步骤,可以方便地求出但变量方程的解,但是如果能够对宏进行编辑,那么,宏的威力将带给你无穷的威力。图12宏的编辑 回到原问题:已知方程: 求该方程在不同 a、b值时的解,求取a=0-10 间隔 0.5,b=1、2、3的共213个解。如果利用图12中的宏的调用,需要改变63次a、b的值,同时点击63次“单变量方程求解”按钮,同时需要及时将所求的根转移至其他单元格,否则所求的根就会被新根替代。03003bxax宏的编辑 在EXCEL的宏编辑中,最关键的要素是单元格的定义, EXCEL表中的每一格可以用CELLS(I,J)定义,如图12中的X的根3.0858所在的单元格为CELLS(2,1),2表示第二行,1表示第A列,依次类推,可以定义所有的单元格。图12宏的编辑 现在要利用宏的编辑,直接产生63个根,并将对应的数据放在第5行至第67行,第A列至第D上,其程序编辑过程如下。图12宏的编辑图13单击图13中的“查看宏”,弹出图14图14宏的编辑点击图14中的编辑,弹出图15图15 删除绿色部分代码,有时会有红色部分代码,这是一些宏录制过程中多余或错误的操作记录,删除。并按题目要求编辑宏代码。宏的编辑Sub Macro1()For j = 1 To 3 For i = 1 To 21 Cells(2, 2) = (i - 1) * 0.5 a的值用循环语句来赋值 Cells(4 + (j - 1) * 21 + i, 1) = (i - 1) * 0.5 a的值新放置位置 Cells(2, 3) = j b的值用循环语句来赋值 Cells(4 + (j - 1) * 21 + i, 2) = j b的值新放置位置 Range(D2).GoalSeek Goal:=0, ChangingCell:=Range(A2) 方程求解 Cells(4 + (j - 1) * 21 + i, 3) = Cells(2, 1) 将方程的根保存起来 Cells(4 + (j - 1) * 21 + i, 4) = Cells(2, 4) 将方程的偏差保存起来 Next iNext jEnd Sub宏的编辑编辑好上述代码后,返回EXCEL界面,单击“单变量方程计算”按钮,不到1秒钟系统自动计算好63个方程的根,见图16。图16宏的编辑图12谷物发酵稳态模拟优化求解器Sub Macro3()Dim iDim j For i = 0.1 To 1 Step 0.1 Range(C6).Select ActiveWindow.ScrollColumn = 2 ActiveWindow.ScrollColumn = 1 ActiveCell.FormulaR1C1 = 0.3 Cells(6, 3) = i Range(D14).Select ActiveWindow.ScrollColumn = 2 ActiveWindow.ScrollColumn = 3 ActiveWindow.ScrollColumn = 4 For j = 1 To 8 SolverSolve (True) Next j Cells(22 + i * 10, 14) = i Cells(22 + i * 10, 15) = Cells(22, 15) Cells(22 + i * 10, 16) = Cells(9, 3) Cells(22 + i * 10, 17) = Cells(10, 3) Cells(22 + i * 10, 18) = Cells(11, 3) ActiveWindow.ScrollColumn = 3 ActiveWindow.ScrollColumn = 2 ActiveWindow.ScrollColumn = 1 ActiveWindow.ScrollColumn = 2 ActiveWindow.ScrollColumn = 3 ActiveWindow.ScrollColumn = 4 ActiveWindow.ScrollColumn = 3 ActiveWindow.ScrollColumn = 2 ActiveWindow.ScrollColumn = 1 Next iEnd Sub谷物发酵稳态模拟优化求解器摩擦系数宏求解Sub Macro2() Dim i, j 改变 粗糙度For i = 0 To 10 Cells(2, 2) = Cells(6, 2) + Cells(8, 2) * i 改变雷诺数 For j = 0 To 20 Cells(2, 1) = Cells(6, 1) + Cells(8, 1) * j Cells(2 + j, 6) = Cells(2, 1) 单变量方程求解 Range(C2).GoalSeek Goal:=0, ChangingCell:=Range(D2) Cells(j + 2, i + 7) = Cells(2, 4) / 保存摩擦系数 Next j Next i End Sub摩擦系数宏求解人有了知识,就会具备各种分析能力,明辨是非的能力。所以我们要勤恳读书,广泛阅读,古人说“书中自有黄金屋。”通过阅读科技书籍,我们能丰富知识,培养逻辑思维能力;通过阅读文学作品,我们能提高文学鉴赏水平,培养文学情趣;通过阅读报刊,我们能增长见识,扩大自己的知识面。有许多书籍还能培养我们的道德情操,给我们巨大的精神力量,鼓舞我们前进。