怎样用EXCEL开发管理信息系统方案_第1页
怎样用EXCEL开发管理信息系统方案_第2页
怎样用EXCEL开发管理信息系统方案_第3页
怎样用EXCEL开发管理信息系统方案_第4页
怎样用EXCEL开发管理信息系统方案_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 .PAGE36 / NUMPAGES36用EXCEL开发管理信息系统摘 要:Excel97是Windows95环境下的一种电子表格软件,可向用户提供史无前例的超强功能和易用性,嵌有一种Visual Basic for Application(简称VBA)超级宏语言,读者在熟练应用Excel的基础上,可按用户的需求用VBA建立适用的信息系统。关键词:EXCEL97 VBA 管理信息系统(MIS)目前国管理信息系统(MIS)开发研制一般采用人们熟悉的dBaseX、Foxbase或Foxpro等,本文介绍了如何用Excel开发MIS。一般来说,一套MIS主要包括信息输入、信息处理、信息输出三大组成

2、部分,用Excel处理这些部分均显得游刃有余。Excel是Windows环境下的一种电子表格软件,可向用户提供史无前例的超强功能和易用性。它同时具有电子数据表、图表和数据库的功能,具有极强的分析性能、报表制作工具和丰富的统计图表。在本文笔者用中文Excel97 for Windows开发了水电管理系统、销售管理系统、试卷分析系统。充分感受到其强大功能和方便性。下面详细阐述水电管理系统、销售管理系统、试卷分析系统的开发过程。应用程序一:水电计价系统水电管理是每一个单位每月都要进行的工作。 下面我们以农校水电计价系统为例讲解VBA在水电管理中的应用。1、 水电计价系统的功能本程序具有如下功能:自动

3、计算功能:可完成各户水费、电费、合计的计算。自动汇总功能:自动汇总全校教职工楼的用电量、用水量与分类汇总。查询功能:可查询各户的电表数、水表数、电费数、水费数。报表的打印输出功能。系统保护功能:具有口令保护、工作表保护以防非法用户进入和修改。2、 程序设计过程(1)程序总体设计( HYPERLINK :/ 5tb /files/yyrj/image/excel1.png t _blank 图1)(2)界面设计水电计价系统主界面如图2所示。( HYPERLINK :/ 5tb /files/yyrj/image/excel6.png t _blank 图2)主界面是以EXCEL工作表作为输入输出

4、界面。具体设计如下:选定一个工作表并命名为“主界面”。选定单元格区域,把区域颜色设置成你喜欢的颜色。放置命令按钮,并给按钮指定宏。分割区域并冻结,锁定界面使之不能滚动。工作表加密保护使用户不能修改。记录单界面如( HYPERLINK :/ 5tb /files/yyrj/image/excel7.png t _blank 图3)所示。具体设计过程如下:选定一个工作表并命名为“记录单”。制表(如上图所示 )。选定年、月、水表数、电表数空白单元格区域,取消锁定。放置命令按钮,并给按钮指定宏。工作表保护使用户不能修改。主报表如( HYPERLINK :/ 5tb /files/yyrj/image/

5、excel8.png t _blank 图4、 HYPERLINK :/ 5tb /files/yyrj/image/excel9.png t _blank 图5)所示。具体设计过程如下:选定一个工作表并命名为“主报表”。制表(如上图所示 )。纵向冻结A、B两列,横向冻结1-5行。放置命令按钮,并给按钮指定宏。输入公式:计算上次表底、本月查表记录、水电用量、水、电费、水电费合计的校、校外合计、楼房合计、平房合计。在C338单元格输入下面公式,拖动填充柄复制公式至L338。=SUMIF($M$6:$M$331,=l校,C6:C331)+SUMIF($M$6:$M$331,=p校,C6:C331)

6、 在C339单元格输入下面公式,拖动填充柄复制公式至L339。=SUMIF($M$6:$M$331,=l校外,C6:C331)+SUMIF($M$6:$M$331,=p校外,C6:C331)在C340单元格输入下面公式,拖动填充柄复制公式至L340。=SUMIF($M$6:$M$331,=l校外,C6:C331)+SUMIF($M$6:$M$331,=l校,C6:C331)在C341单元格输入下面公式,拖动填充柄复制公式至L341。=SUMIF($M$6:$M$331,=p校外,C6:C331)+SUMIF($M$6:$M$331,=p校,C6:C331)工作表保护使用户不能修改。查表档案界面

7、如(下 HYPERLINK :/ 5tb /files/yyrj/image/excel10.png t _blank 图)所示:具体设计过程如下:选定一个工作表并命名为“档案”。制表(如 HYPERLINK :/ 5tb /files/yyrj/image/excel10.png t _blank 图6所示 )。纵向冻结A、B两列,横向冻结1-3行。放置命令按钮,并给按钮指定宏。工作表保护使用户不能修改。查询档案如(下 HYPERLINK :/ 5tb /files/yyrj/image/excel11.png t _blank 图)所示:具体设计过程如下:选定一个工作表并命名为“查询”。制

8、表(如 HYPERLINK :/ 5tb /files/yyrj/image/excel11.png t _blank 图7所示 )。纵向冻结A列,横向冻结1-3行。放置命令按钮,并给按钮指定宏。工作表保护使用户不能修改。(3)、水电计价系统的VBA代码与说明Dim s As VariantDim y As VariantDim u As Variant 模块级变量声明Sub shuru() ?指定给主界面输入按钮s = Worksheets(主界面).Range(v1).Value 获取密码For y2 = 1 To 2x = InputBox(请输入密码:, 农校水电计价系统)If x =

9、 s ThenWorksheets(主界面).ActivateActiveSheet.UnprotectActiveSheet.DrawingObjects(按钮 2).SelectSelection.OnAction = vbbActiveSheet.DrawingObjects(按钮 3).SelectSelection.OnAction = ibdaActiveSheet.DrawingObjects(按钮 5).SelectSelection.OnAction = 退出ActiveSheet.DrawingObjects(按钮 4).SelectSelection.OnAction =

10、 报表查询ActiveSheet.ProtectWorksheets(记录单).ActivateExit SubElseIf x = ThenMsgBox 请输入密码ElseExit SubEnd IfNext y2End Sub 以上是根据密码正确与否选择执行代码段Sub 返回1() 指定给返回按钮Worksheets(主界面).ActivateEnd SubSub 存档() ?指定给记录单上的存档按钮thecode = vbYesNo + vbDefaultButton2 + vbExclamation + vbapplicationmodelMsgBox 请对输入进行检查,是否正确?,

11、thecodethereply = MsgBox(prompt:=请对输入进行检查,是否正确?, Buttons:=thecode)Select Case thereplyCase vbYesm = Worksheets(记录单).Range(c5)n = Worksheets(记录单).Range(d5)If m And n ThenWorksheets(记录单).Range(c5:d330).SelectSelection.CopyElseIf m And n = ThenWorksheets(记录单).Range(c5:c330).SelectSelection.CopyElseIf m

12、 = And n ThenWorksheets(记录单).Range(d5:d330).SelectSelection.CopyElseIf m = And n = ThenExit SubElseEnd IfWorksheets(报表).ActivateActiveSheet.UnprotectIf m And n ThenWorksheets(报表).ActivateWorksheets(报表).Range(e6).SelectSelection.PasteSpecialElseIf m And n = ThenWorksheets(报表).ActivateWorksheets(报表).R

13、ange(e6).SelectSelection.PasteSpecialElseIf m = And n ThenWorksheets(报表).ActivateWorksheets(报表).Range(f6).SelectSelection.PasteSpecialElseEnd IfWorksheets(档案).Activatey1 = Worksheets(记录单).Range(c2).Valuex = 0Do Until z = y1x = x + 1z = Worksheets(档案).Cells(2, x).ValueLoopIf m And n ThenWorksheets(档案

14、).Cells(4, x).SelectSelection.PasteSpecialElseIf m = And n ThenWorksheets(档案).Cells(4, x + 1).SelectSelection.PasteSpecialElseIf m And n = ThenWorksheets(档案).Cells(4, x).SelectSelection.PasteSpecialElseEnd IfWorksheets(主界面).ActivateCase vbNoEnd SelectExit SubEnd Sub 以上代码是把录入数据存入主报表和查表档案Sub 返回2() 指定给

15、主报表上的返回主界面按钮ActiveSheet.UnprotectWorksheets(主界面).ActivateEnd SubSub 取电表底() 指定给主报表上的取电表底按钮y = InputBox(请输入电表底(y0,1,2.12):, 农校水电计价系统)ActiveSheet.UnprotectIf y = y0 ThenWorksheets(档案).ActivateRange(c4:c329).SelectSelection.CopyWorksheets(报表).ActivateRange(c6).SelectSelection.PasteSpecialElseIf y = 1 Th

16、enWorksheets(档案).ActivateRange(e4:e329).SelectSelection.CopyWorksheets(报表).ActivateRange(c6).SelectSelection.PasteSpecialElseIf y = 2 ThenWorksheets(档案).ActivateRange(g4:g329).SelectSelection.CopyWorksheets(报表).ActivateRange(c6).SelectSelection.PasteSpecialElseIf y = 3 ThenWorksheets(档案).ActivateRan

17、ge(i4:i329).SelectSelection.CopyWorksheets(报表).ActivateRange(c6).SelectSelection.PasteSpecialElseIf y = 4 ThenWorksheets(档案).ActivateRange(k4:k329).SelectSelection.CopyWorksheets(报表).ActivateRange(c6).SelectSelection.PasteSpecialElseIf y = 5 ThenWorksheets(档案).ActivateRange(m4:m329).SelectSelection.

18、CopyWorksheets(报表).ActivateRange(c6).SelectSelection.PasteSpecialElseIf y = 6 ThenWorksheets(档案).ActivateRange(o4:o329).SelectSelection.CopyWorksheets(报表).ActivateRange(c6).SelectSelection.PasteSpecialElseIf y = 7 ThenWorksheets(档案).ActivateRange(q4:q329).SelectSelection.CopyWorksheets(报表).ActivateR

19、ange(c6).SelectSelection.PasteSpecialElseIf y = 8 ThenWorksheets(档案).ActivateRange(s4:s329).SelectSelection.CopyWorksheets(报表).ActivateRange(c6).SelectSelection.PasteSpecialElseIf y = 9 ThenWorksheets(档案).ActivateRange(u4:u329).SelectSelection.CopyWorksheets(报表).ActivateRange(c6).SelectSelection.Pas

20、teSpecialElseIf y = 10 ThenWorksheets(档案).ActivateRange(w4:w329).SelectSelection.CopyWorksheets(报表).ActivateRange(c6).SelectSelection.PasteSpecialElseIf y = 11 ThenWorksheets(档案).ActivateRange(y4:y329).SelectSelection.CopyWorksheets(报表).ActivateRange(c6).SelectSelection.PasteSpecialElseIf y = 12 The

21、nWorksheets(档案).ActivateRange(aa4:aa329).SelectSelection.CopyWorksheets(报表).ActivateRange(c6).SelectSelection.PasteSpecialElseIf y = ThenActiveSheet.ProtectExit SubElseEnd IfWith Application.Calculation = xlAutomatic.MaxChange = .001End WithActiveWorkbook.PrecisionAsDisplayed = FalseActiveSheet.Prot

22、ectEnd Sub 以上代码是使用选择语句从查表档案中取电表底Sub 取水表底() 指定给主报表上的取电表底按钮ActiveSheet.Unprotectu = InputBox(请输入水表底(y0,1,2.12):, 农校水电计价系统)If u = y0 ThenWorksheets(档案).ActivateRange(d4:d329).SelectSelection.CopyWorksheets(报表).ActivateRange(d6).SelectSelection.PasteSpecialElseIf u = 1 ThenWorksheets(档案).ActivateRange(f

23、4:f329).SelectSelection.CopyWorksheets(报表).ActivateRange(d6).SelectSelection.PasteSpecialElseIf u = 2 ThenWorksheets(档案).ActivateRange(h4:h329).SelectSelection.CopyWorksheets(报表).ActivateRange(d6).SelectSelection.PasteSpecialElseIf u = 3 ThenWorksheets(档案).ActivateRange(j4:j329).SelectSelection.Copy

24、Worksheets(报表).ActivateRange(d6).SelectSelection.PasteSpecialElseIf u = 4 ThenWorksheets(档案).ActivateRange(l4:l329).SelectSelection.CopyWorksheets(报表).ActivateRange(d6).SelectSelection.PasteSpecialElseIf u = 5 ThenWorksheets(档案).ActivateRange(n4:n329).SelectSelection.CopyWorksheets(报表).ActivateRange

25、(d6).SelectSelection.PasteSpecialElseIf u = 6 ThenWorksheets(档案).ActivateRange(p4:p329).SelectSelection.CopyWorksheets(报表).ActivateRange(d6).SelectSelection.PasteSpecialElseIf u = 7 ThenWorksheets(档案).ActivateRange(r4:r329).SelectSelection.CopyWorksheets(报表).ActivateRange(d6).SelectSelection.PasteSp

26、ecialElseIf u = 8 ThenWorksheets(档案).ActivateRange(t4:t329).SelectSelection.CopyWorksheets(报表).ActivateRange(d6).SelectSelection.PasteSpecialElseIf u = 9 ThenWorksheets(档案).ActivateRange(v4:v329).SelectSelection.CopyWorksheets(报表).ActivateRange(d6).SelectSelection.PasteSpecialElseIf u = 10 ThenWorks

27、heets(档案).ActivateRange(x4:x329).SelectSelection.CopyWorksheets(报表).ActivateRange(d6).SelectSelection.PasteSpecialElseIf u = 11 ThenWorksheets(档案).ActivateRange(z4:z329).SelectSelection.CopyWorksheets(报表).ActivateRange(d6).SelectSelection.PasteSpecialElseIf u = 12 ThenWorksheets(档案).ActivateRange(ab

28、4:ab329).SelectSelection.CopyWorksheets(报表).ActivateRange(d6).SelectSelection.PasteSpecialElseIf u = ThenActiveSheet.ProtectExit SubElseEnd IfWith Application.Calculation = xlAutomatic.MaxChange = .001End WithActiveWorkbook.PrecisionAsDisplayed = FalseActiveSheet.ProtectEnd Sub 以上代码是使用选择语句从查表档案中取水表底

29、Sub bsy() 由报表存档过程调用Worksheets(主界面).Activatex = 3Do While Not (IsEmpty(Worksheets(主界面).Cells(11, x).Value)x = x + 1LoopWorksheets(主界面).Cells(11, x).Value = Worksheets(记录单).Range(c2)Worksheets(主界面).Cells(11, x + 1).Value = 月Worksheets(主界面).Cells(12, x).Value = uWorksheets(主界面).Cells(13, x).Value = yWo

30、rksheets(主界面).Cells(12, x + 1).Value = 月Worksheets(主界面).Cells(13, x + 1).Value = 月Worksheets(报表).ActivateRange(c3:f5).SelectSelection.CopyRange(c334:f336).SelectSelection.PasteSpecialRange(a1).SelectActiveWindow.ScrollRow = 6ActiveSheet.ProtectEnd Sub 以上代码是把报表月份和表底月份放入主界面上的表格里Sub 返回3() ?指定给返回主界面按钮Ac

31、tiveSheet.UnprotectWorksheets(主界面).ActivateEnd SubSub 打印设置() 指定给主界面上的打印设置按钮With ActiveSheet.PageSetup.PrintTitleRows = $1:$5.PrintTitleColumns = End WithActiveSheet.PageSetup.PrintArea = With ActiveSheet.PageSetup.LeftHeader = .CenterHeader = 水电计价系统.RightHeader = 第 &P 页.LeftFooter = .CenterFooter =

32、.RightFooter = .LeftMargin = Application.InchesToPoints(.063).RightMargin = Application.InchesToPoints(.063).TopMargin = Application.InchesToPoints(.3937).BottomMargin = Application.InchesToPoints(.3937).HeaderMargin = Application.InchesToPoints(.2047).FooterMargin = Application.InchesToPoints(.2047

33、).PrintHeadings = False.PrintGridlines = False.PrintNotes = False.PrintQuality = Array(360, 180).CenterHorizontally = True.CenterVertically = False.Orientation = xlPortrait.Draft = False.PaperSize = xlPaperUser.FirstPageNumber = xlAutomatic.Order = xlDownThenOver.BlackAndWhite = False.Zoom = 100End

34、WithEnd Sub 进行打印设置Sub vbb() 指定给主界面上的主报表按钮Worksheets(报表).ActivateActiveSheet.ProtectEnd Sub 激活主报表Sub ibda() 指定给主界面上的报表查询按钮Worksheets(档案).ActivateActiveSheet.ProtectEnd Sub 激活档案工作表Sub 打印() 指定给主报表上的打印按钮d = InputBox(请选择打印项(“楼房校1;楼房校外2;平房校3;平房校外4”):, 打印选项窗口)If d = 1 ThenActiveSheet.UnprotectRange(A5:M331

35、).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange _:=Range(c342:c343), Unique:=FalseActiveWindow.SelectedSheets.PrintOut Copies:=1ElseIf d = 2 ThenActiveSheet.UnprotectRange(A5:M331).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange _:=Range(d342:d343), Unique:=FalseActiveWindow.SelectedSh

36、eets.PrintOut Copies:=1ElseIf d = 3 ThenActiveSheet.UnprotectRange(A5:M331).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange _:=Range(e342:e343), Unique:=FalseActiveWindow.SelectedSheets.PrintOut Copies:=1ElseIf d = 4 ThenActiveSheet.UnprotectRange(A5:M331).AdvancedFilter Action:=xlFilterInPlac

37、e, CriteriaRange _:=Range(f342:f343), Unique:=FalseActiveWindow.SelectedSheets.PrintOut Copies:=1ElseIf d 1 Or d 2 Or d 3 Or d 4 ThenMsgBox 打印项选择有误,请重选!BeepExit SubElseEnd IfActiveSheet.ShowAllDataActiveSheet.ProtectEnd Sub 进行选项打印Sub 退出() 指定给主界面上的退出按钮宏2 系统初始化的逆过程ActiveSheet.UnprotectActiveSheet.Draw

38、ingObjects(按钮 2).SelectSelection.OnAction = 撤销按钮2的指定宏ActiveSheet.DrawingObjects(按钮 3).SelectSelection.OnAction = 撤销按钮3的指定宏ActiveSheet.DrawingObjects(按钮 5).SelectSelection.OnAction = ActiveSheet.DrawingObjects(按钮 4).SelectSelection.OnAction = 撤销按钮4的指定宏ActiveSheet.Protectthecode = vbYesNo + vbDefaultB

39、utton2 + vbExclamation + vbapplicationmodelthereply = MsgBox(prompt:=是否存盘?(如果不是正式报表请选否!), Buttons:=thecode)Select Case thereplyCase vbYesdj = Worksheets(报表).Range($g$278).Valueuj = Worksheets(报表).Range($h$278).Valuezj = worksheets(报表).Range($h$332).Valueda = Worksheets(报表).Range($g$277).Valueub = Wo

40、rksheets(报表).Range($h$277).ValueIf dj 0 Or uj 0 Or da 0 Or ub 0 ThenActiveWorkbook.SaveChDrive a:ActiveWorkbook.SaveAs Filename:=SHUIDIAN.XLS, FileFormat:=xlNormal,Password:=,WriteResPassword:=,ReadOnlyRecommended:= False, CreateBackup:=FalseApplication.QuitElseMsgBox 不是正式报表,不予存盘!Application.Display

41、Alerts = FalseApplication.QuitEnd IfCase vbNoApplication.DisplayAlerts = FalseApplication.QuitEnd SelectEnd Sub 以上是执行退出存盘Sub 初始化() 指定给主界面上的系统初始化按钮定义界面 调用定义界面宏改变应用程序标题Worksheets(记录单).ActivateWorksheets(记录单).Range(c5:d330).SelectSelection.ClearContentsWorksheets(报表).ActivateActiveSheet.UnprotectWorksh

42、eets(报表).Range(c6:f331).SelectSelection.ClearContentsWorksheets(主界面).Activate 以上代码是清除记录单和报表数据宏1调用宏1End SubSub 宏1()With Toolbars(1).Visible = False.Position = xlFloating.Left = 89.Top = 67End WithWith Toolbars(2).Visible = False.Position = xlFloating.Left = 79.Top = 78End WithActiveWindow.DisplayWork

43、bookTabs = FalseEnd Sub 宏2 Macro ykq记录宏1997/1/10 快捷键: Ctrl+eSub 宏2()ActiveWindow.DisplayWorkbookTabs = TrueToolbars(1).Visible = TrueToolbars(2).Visible = FalseWith Application.ShowToolTips = True.LargeButtons = False.ColorButtons = TrueEnd WithToolbars(1).Visible = TrueWith Toolbars(2).Visible = Tr

44、ue.Position = xlTopEnd WithWith Application.ShowToolTips = True.LargeButtons = False.ColorButtons = TrueEnd WithToolbars(1).Position = xlTopWorksheets(主界面).ActivateEnd SubSub 定义界面()Application.Caption = 农校水电计价系统ActiveWindow.Caption = End Sub快捷键 ctrl+sSub 密码() 指定给主界面上的密码设置按钮d = InputBox(请输入旧密码:, 农校水电

45、计价系统)If d = Worksheets(主界面).Range(v1).Value ThenFor x = 1 To 2a = InputBox(请输入自定义密码:, 农校水电计价系统)b = InputBox(请重新输入自定义密码:, 农校水电计价系统)If a = b And a Thenc = aWorksheets(主界面).Range(v1).Value = cExit ForElseMsgBox 密码输入不正确End IfNext xElse Exit SubEnd IfEnd Sub 以上代码是设置密码Sub 报表查询() 指定给报表查询按钮Worksheets(查询档案).

46、ActivateActiveSheet.ProtectEnd Sub 以上代码是激活查询档案Sub 返回4() 指定给返回按钮ActiveSheet.Unprotect 解除当前工作表保护Worksheets(主界面).ActivateEnd SubSub 报表存档() 指定给主报表上的报表存档按钮dj = Range($g$278).Valueuj = Range($h$278).Valuezj = Range($h$332).Valueda = Range($g$277).Valueub = Range($h$277).ValueIf dj 0 Or uj 0 Or da 0 Or ub

47、0 ThenActiveSheet.UnprotectRange(g5:h331,j5:l331).SelectSelection.CopyWorksheets(查询档案).Activatex = 1Do While Not (IsEmpty(Worksheets(查询档案).Cells(3, x).Value)x = x + 1LoopActiveSheet.Cells(3, x).SelectSelection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _SkipBlanks:=False, Transpose:=FalseWorks

48、heets(查询档案).Cells(2, x).Value = yWorksheets(查询档案).Cells(2, x).Value = Worksheets(记录单).Range($c$2)Worksheets(查询档案).Cells(2, x + 1).Value = 月Worksheets(主界面).Activatebsy 调用bsy宏ElseMsgBox 不是正式 报表,不予存档!Exit SubEnd IfEnd Sub 以上代码是把报表数据存入查询档案 查询档案清理 快捷键: Ctrl+hSub 宏3() 清理查询档案Worksheets(查询档案).ActivateRange(

49、B2:AN329).SelectSelection.ClearContentsRange(a1).SelectWorksheets(主界面).ActivateEnd Sub 宏4 Macro ykq记录宏1997/1/10 档案库清理 快捷键: Ctrl+jSub 宏4() 清理查表档案Worksheets(档案).ActivateRange(C4:AB329).SelectSelection.ClearContentsRange(a1).SelectWorksheets(主界面).ActivateEnd Sub应用程序二:销售管理系统在商业企业的经营活动中,主要业务活动是进销存。本程序主要解

50、决销售的问题,关于进货和库存留给读者自己在原来程序的基础上进一步开发。1、 销售管理系统的功能自动计算进货金额、销货金额和毛利。分类汇总功能,可按商品和经手人代码进行分类汇总。打印功能查询功能(可按商品和经手人代码进行查询)。2、 销售管理系统的程序设计销售管理系统总体设计界面设计:( HYPERLINK :/ 5tb /files/yyrj/image/excel2.png t _blank 图8)主界面如( HYPERLINK :/ 5tb /files/yyrj/image/excel12.png t _blank 图9)所示:界面具体设计过程:选定一工作表,重命名为“主界面”。选定工作

51、表区域,设置区域颜色。在区域添加应用程序标题和命令按钮。给按钮指定宏 。对主界面进行口令保护。分割工作表区域并冻结,以防屏幕滚动。发货单如( HYPERLINK :/ 5tb /files/yyrj/image/excel13.png t _blank 图10)所示:发货单界面设计过程如下:按 HYPERLINK :/ 5tb /files/yyrj/image/excel13.png t _blank 图10格式制表。放置命令按钮。选定A5,C5,E5,E10,A7:F9解锁定。在G7,G8,G9单元格里依次输入公式E7*F7,=E8*F8,=E9*F9,?G10单元格里输入 =SUM(G7

52、:G9)。保护工作表。毛利核算表如( HYPERLINK :/ 5tb /files/yyrj/image/excel14.png t _blank 图11)所示:界面具体设计过程:选定一工作表重命名为“毛利核算”。按 HYPERLINK :/ 5tb /files/yyrj/image/excel14.png t _blank 图11所示制表。在毛利核算表上添加命令按钮并给之指定宏。纵向冻结A、B两列,横向冻结13行。对工作表进行保护。3、 销售管理系统的VBA代码与说明Sub fhd() 指定给主界面上的发货单按钮Dim x, y As String 声明过程级变量Sheets(fhd).

53、Activatex = Sheets(fhd).Range(a7).Valuey = Sheets(fhd).Range(e10).ValueIf x And y ThenWorksheets(mlhs).Activatez = 4Do While Not IsEmpty(Sheets(mlhs).Cells(z, 1).Value)z = z + 1LoopIf z - 1 50 ThenMsgBox$ 试用版限处理50笔业务!EndElsez1 = 7Do While Not IsEmpty(Sheets(fhd).Cells(z1, 1).Value)z1 = z1 + 1LoopFor

54、 z2 = 7 To z1 - 1Cells(z, 1) = Sheets(fhd).Cells(10, 5)Cells(z, 2) = Sheets(fhd).Cells(5, 1) & - & Sheets(fhd).Cells(5, 3) & - & Sheets(fhd).Cells(5, 5)Cells(z, 3) = Sheets(fhd).Cells(z2, 1)Cells(z, 4) = Sheets(fhd).Cells(z2, 2)Cells(z, 5) = Sheets(fhd).Cells(z2, 3)Cells(z, 6) = Sheets(fhd).Cells(z2

55、, 6)Cells(z, 7) = Sheets(fhd).Cells(z2, 4)Cells(z, 9) = Sheets(fhd).Cells(z2, 5)z = z + 1Next z2End IfElseMsgBox 发货单记录不完整,请检查!EndEnd IfSheets(fhd).ActivateRange(a7:f9).SelectSelection.ClearContentsRange(a7).SelectEnd Sub 以上代码把发货单数据复制到毛利核算表并进行错误自检。Sub 计算毛利() 指定给毛利核算表上的计算毛利按钮Sheets(mlhs).UnprotectRang

56、e(h4).SelectActiveCell.FormulaR1C1 = =RC-2*RC-1Selection.AutoFill Destination:=Range(H4:H500), Type:=xlFillDefaultRange(j4).SelectActiveCell.FormulaR1C1 = =RC-4*RC-1Selection.AutoFill Destination:=Range(j4:j500), Type:=xlFillDefaultRange(k4).SelectActiveCell.FormulaR1C1 = =RC-1-RC-3Selection.AutoFil

57、l Destination:=Range(k4:k500), Type:=xlFillDefaultRange(a1).SelectActiveWindow.SmallScroll ToRight:=-4Sheets(mlhs).ProtectEnd Sub 自动输入公式并自动复制。Sub dy() 指定给毛利核算表上的打印按钮Sheets(mlhs).Activatex = 4Do While Not IsEmpty(Sheets(mlhs).Cells(x, 1).Value)x = x + 1LoopRange(Cells(1, 1), Cells(x, 11).SelectSelect

58、ion.PrintOutRange(a1).SelectSheets(vjm).ActivateEnd Sub 以上代码是先自动检测报表区域并选定,然后打印输出。Sub jrfhd()Sheets(fhd).ActivateRange(a1).SelectEnd SubSub fhvjm()Sheets(vjm).ActivateRange(a1000).SelectEnd SubSub jrmlhs()Sheets(mlhs).ActivateRange(a1).SelectEnd SubSub iax() 指定给主界面和毛利核算表上的查询按钮Dim d As Stringd = Input

59、Box(请选择查询项(按人查询1;按商品查询2):, 查询选择窗)If d = 1 ThenSheets(mlhs).SelectRange(A4).SelectActiveSheet.UnprotectSelection.Sort Key1:=Range(A4), Order1:=xlAscending, Header:= _xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:= _xlTopToBottomSelection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array

60、(8 _, 10, 11), Replace:=True, PageBreaks:=False, SummaryBelowData:= _TrueSheets(mlhs).SelectActiveSheet.Outline.ShowLevels RowLevels:=2Range(a1).Select宏5 调用宏5过程ActiveWindow.ScrollColumn = 3Sheets(mlhs).ProtectElseIf d = 2 ThenSheets(mlhs).SelectSelection.RemoveSubtotalSheets(mlhs).UnprotectSelection

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论