求曾贤志]Word VBA视频教程 完整版 精通版 百度网盘
Sub analyzing() lastcolumn = [iv3].End(xlToLeft).Column - 2 For i = 7 To lastcolumn '做最后分析的数据 Columns(i).ColumnWidth = 7.4 Cells(lastrow + 1, i) = Cells(2, i) '得出科目 Cells(lastrow + 2, i) = "=sum(r3c[0]:r" & lastrow & "c[0])" '计算各个科目总分 Cells(lastrow + 5, i) = "=sumproduct(--(r3c[0]:r" & lastrow & "c[0]>0))" '算出有多少人参考 Cells(lastrow + 7, i) = "=max(r3c[0]:r" & lastrow & "c[0])" '算出最高分 Cells(lastrow + 8, i).FormulaArray = "=min(if(r3c[0]:r" & lastrow & "c[0]>0,r3c[0]:r" & lastrow & "c[0]))" '用数组公式算出最低分 Cells(lastrow + 3, i) = "=round(r" & lastrow + 2 & "c[0]/r" & lastrow + 5 & "c[0], 2)" '算出平均分 Cells(lastrow + 4, i) = "=round(r" & lastrow + 6 & "c[0]/r" & lastrow + 5 & "c[0], 4)" '算出及格率 Cells(lastrow + 6, i) = "=sumproduct(--(r3c[0]:r" & lastrow & "c[0]>=getdata(r2c[0])))" '算出各科目及格人数 Next Range(Cells(lastrow + 4, 7), Cells(lastrow + 4, 16)).NumberFormatLocal = "0.00%" End Sub Function getdata(rng As Range) '获取各科目对应的及格分数 arr = Array("语文", "数学", "英语", "政治", "历史", "地理", "物理", "化学", "生物", "文综", "理综", "总分") brr = Array(90, 90, 90, 60, 60, 60, 60, 60, 60, 60, 60, 630) getdata = brr(Application.Match(rng.Value, arr, 0) - 1) End Function 至于年级排序,不要公式,就用两个小别号,改为注释句,要就去掉别号,搞不懂,年武总分0,也排名"250"位? 这样用函数灵活一点,但也要修改代码中的数组brr()中的值.
WORD,EXCEL,中宏如何使用周围的人的说宏有很大的用处,可
宏可以实现常用的操作,实际就是VBA的编程简单应用。
利用宏可以将用户常用的操作记录下来,每次需要使用的时候只需执行以下宏就可以完成相应的操作; 比如:在Excel里如果经常做相同的格式设计的话,可以将设计格式的过程记录下来,下次如果有文档需要同样的格式设计的话,就可以执行一次宏,格式就会自动设定了; 你可以自己摸索一下,体会其中的妙用,在工具菜单里选择宏,录制新宏,设定宏名,开始录制。
操作结束后,再在工具菜单里选择宏,执行下刚才录制的宏,看看发生了什么?同样的WORD里的宏也是一样的意思。
VB和VBA详细的区别?都用在什么地方?
**** VBA 在90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言.例如:可以用EXCEL的宏语言来使EXCEL自动化,使用WORD BASIC使WORD自动化,等等.微软决定让它开发出来的应用程序共享一种通用的自动化语言--------Visual Basic For Application(VBA),可以认为VBA是非常流行的应用程序开发语言VISUAL BASIC 的子集.实际上VBA是寄生于VB应用程序的版本. * VBA一个关键特征是你所学的知识在微软的一些产品中可以相互转化. * VBA可以称作EXCEL的“遥控器”. VBA究竟是什么?更确切地讲,它是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案. 此外,如果你愿意,还可以将EXCEL用做开发平台实现应用程序. Office取得巨大成功的一个重要原因就是VBA,使用VBA可以完成很多事情,基于Excel、Word的VBA小程序不计其数。
VBA程序员很多是业余程序员,正因为业余,解决的却是工作中需要解决的问题;所以,VBA程序大多都是只是在部门内部或个人使用的小工具。
****VB 与VBA VBA 是基于Visual Basic 发展而来的,它们具有相似的语言结构。
Visual Basic 是Microsoft 的主要图形界面开发工具,VBA 5.0 (亦即VBA 97)则是Visual Basic5.0 的子集。
Visual Basic 是由Basic 发展而来的第四代语言。
Visual Basic 作为一套独立的Windows 系统开发工具,可用于开发Windows 环境下的各类应用程序,是一种可视化的、面向对象的、采用事件驱动方式的结构化高级程序设计语言。
它具有高效率、简单易学及功能强大的特点。
VB 的程序语言简单、便捷,利用其事件驱动的编程机制,新颖易用的可视化设计工具,并使用Windows 应用程序接口(API)函数,采用动态链接库(DLL)、动态数据交换(DDE)、对象的链接与嵌入(OLE)以及开放式数据库访问(ODBC)等技术,可以高效、快速地编制出 Windows 环境下功能强大、图形界面丰富的应用软件系统。
VBA 不但继承了VB 的开发机制,而且VBA 还具有与VB 相似的语言结构,它们的集成开发环境IDE(Intergrated Development Environment)也几乎相同。
但是,经过优化,VBA 专门用于Office 的各应用程序。
VB 可运行直接来自Windows 95 或NT 桌面上的应用程序,而VBA 的项目(Project)仅由使用VBA 的Excel、Word、PowerPoint 等称为宿主(Host)的Office 应用程序(Application)来调用。
简而言之:VBA是VB在二次开发OFFICE系列软件的应用,它是VB的简化版,但它不能独立运行,必须依附OFFICE软件。
VB的一些功能在VBA中无法使用,但多数函数和方法是通用的。
请教:如何用VBA把数据从一个表复制到另一个表中?请问:想用VB
其实你提出的这个问题,用函数就可以解决。
涉及跨表存取数据,打开表执行查找后再关闭,程序的运行效率不高。
下面的代码实际就是用函数执行查找,然后处理成数值,感觉可能要快一点。
引用各科成绩的数据原理和引用考场号是一样的,只要修改代码中公式的内容就好了, Sub 从登分表中导入考场座号数据() Application.ScreenUpdating = False Dim wstTemp As Worksheet, intRow% For Each wstTemp In ActiveWorkbook.Worksheets With wstTemp intRow = .[A65536].End(xlUp).Row If wstTemp.Name Like "*文*" Then .Range("G3:G" & intRow).FormulaR1C1 = "=VLOOKUP(RC[-6],[文登分表.xls]文科登分表!C1:C5,4,0)" .Range("H3:H" & intRow).FormulaR1C1 = "=VLOOKUP(RC[-7],[文登分表.xls]文科登分表!C1:C5,5,0)" .Range("G3:H" & intRow).Copy .Range("G3:H" & intRow).PasteSpecial xlPasteValues, xlNone, False, False ElseIf wstTemp.Name Like "*理*" Then .Range("G3:G" & intRow).FormulaR1C1 = "=VLOOKUP(RC[-6],[理登分表.xls]理科登分表!C1:C5,4,0)" .Range("H3:H" & intRow).FormulaR1C1 = "=VLOOKUP(RC[-7],[理登分表.xls]理科登分表!C1:C5,5,0)" .Range("G3:H" & intRow).Copy .Range("G3:H" & intRow).PasteSpecial xlPasteValues, xlNone, False, False End If End With Next Application.ScreenUpdating = True End Sub Sub 清除考场座号数据() Application.ScreenUpdating = False Dim wstTemp As Worksheet, intRow% For Each wstTemp In ActiveWorkbook.Worksheets With wstTemp If wstTemp.Name Like "*文*" Or wstTemp.Name Like "*理*" Then intRow = .[A65536].End(xlUp).Row .Range("G3:H" & intRow).ClearContents End If End With Next Application.ScreenUpdating = True End Sub
还是求VBA代码2luohanggong老师,运用您提供的方法时
上次不清楚你要启用什么宏,使用没有说明。
只要把需要运行的宏写在工作簿(ThisWorkbook)模块的响应工作簿打开事件的Private Sub Workbook_Open()中。
(或调用) 补充: VBA所有过程(宏)都必须由事件触发,你要“自动”运行的宏,也需要写到事件响应的过程中,例如: 打开工作簿、激活工作表、选择变化....等。
我在工作簿(ThisWorkbook)模块中写入 Private Sub Workbook_Open() '打开工作簿事件 模块1.UseValue End Sub 测试结果符合要求,所有公式都删除了 【注意】要写在工作簿(ThisWorkbook)模块中。
应该没问题,见附件,插入一个运行宏的提示
转载请注明出处51数据库 » word vba实例教程