ImageVerifierCode 换一换
格式:DOCX , 页数:37 ,大小:67KB ,
资源ID:3305919      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3305919.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(VAB学习之我见.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

VAB学习之我见.docx

1、VAB学习之我见VAB学习之我见1、 单元格附值a. A1 = 100 在 A1 单元格输入100。b. A2:A4 = 10 在 A2:A4 单元格输入10。c. Range(B1) = 200 在 B1 单元格输入200.d. Range(C1:C3) = 300 在 C1:C3 单元格输入300。e. Cells(1, 4) = 400 在 D1 单元格输入400.f. Range(Cells(1, 5), Cells(5, 5) = 50 在 E1:E5单元格输入50。2、 读取其他单元格数值a. Cells(1, 4) = Sheet4.Cells(1, 4) 把 Shee4 工作表

2、(只能是原始名字,sheet改名后不可用)单元格 D1 数据,读到 D1 单元格。b. Cells(1, 4) = worksheets(2).Cells(1, 4) 把第2个sheet(从左向右数) 工作表单元格 D1 数据,读到 D1 单元格。也可以写成Cells(1, 4) = sheets(2).Cells(1, 4)c. Cells(1, 4) = Sheet4.Cells(1, 4) 把 Shee4 工作表单元格 D1 数据,读到 D1 单元格。d. Range(Cells(1, 5), Cells(5, 5) = Sheets(name).Cells(1, 1) 读取名字为nam

3、e 工作表单元格 A1 数据。e. i = activecell.Row 是把当前单元格的行数,指定给变量 i。j = activecell.Column 是把当前单元格的栏数,指定给变量 j。f. vba中range(cells,cells)插入变量,选择不连续单元格区域的问题就是我编vba的时候,通过录制发现Range(A1:B4,D1:E4).Select可以选取不连续的单元格区域。 但是我实际上单元格区域是不定的,比如A1:B4中的行4是不定的,我用i=range(A65536).end(xlup).row计算的。 所以当我现在选取这些不连续单元格区域的时候,就有变量了 首先我把4改成

4、i,那么就变成了range(A1:Bi,D1:Ei),当然这句话肯定是错的,于是又改成range(A1:B&i,D1:E&i),还是错的,又改成range(A1:B&i,D1:E&i),但变量在中似乎不能识别。 于是去掉外面的后就成了range(A1:B&i,D1:E&i),这样又成了连续的单元格区域,我实在晕死,不知道怎么办了,我的区域很多,操作的变量不止i一个,而且后面操作的代码一大串。 所以请问高手如何解决插入变量,选择不连续单元格区域的问题啊最佳答案你的意思是想在range中插入变量对吧? 你的原来写法是: range(A1:B&i,D1:E&i) 你把它改成: Range(a1:b

5、& i & , d1:e & i & )看看 你一定要分清这串字符串中的变量和字符 要了解双分号和&的用法 记得要在&和i中间加入空格3、 Worksheet_SelectionChangea. Private Sub Worksheet_SelectionChange(ByVal Target As Range)Target = 100End Sub利用 Worksheet_SelectionChange 输入数据, Target 指的是你鼠标所选的单元格,Worksheet_SelectionChange() 事件的参数。可以是一个也可以是好几个单元格。Range 是 Excel 特有的变

6、量形态,叫范围。Target As Rang 是把 Target 这个参数设定为 Range 变量形态。Target = 100 是把你点选的单元格输入数字100。b. Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Target.Row = 2 And Target.Column = 2 ThenTarget = 100End IfEnd SubTarget.Row = 2,指的是鼠标选定的单元格的行数大于或等于2。Target.Column = 2 ,指的是鼠标选定的单元格的列数等于 2。If Target.Ro

7、w = 2 And Target.Column = 2 Then 指的是 (Target.Row = 2) 为True及(Target.Column = 2)为True时,才执行B 栏第二行及以下行用鼠标被点选时,才会被输入100,其它单元格则不被输入数据。 等同方法:利用CommandButton1_Click()Private Sub CommandButton1_Click()If ActiveCell.Row = 2 And ActiveCell.Column = 3 ThenActiveCell = 100End IfEnd Sub4、 Worksheet_Change()Priva

8、te Sub Worksheet_Change(ByVal Target As Range)Dim iRow, iCol As IntegeriRow = Target.RowiCol = Target.ColumnIf iRow = 2 And iCol = 2 And Target Then Application.EnableEvents = FalseCells(iRow, iCol + 1) = Cells(iRow, iCol) * 2Application.EnableEvents = TrueElseIf iRow = 2 And iCol = 2 And Target = T

9、henCells(iRow, iCol + 1) = ElseCells(iRow, iCol + 1) = End IfEnd SubApplication.EnableEvents = False与Application.EnableEvents = True,这是个成双的程序,当你用了前者记得在执行其他程序後要写上後面的程序。它的目的在抑制事件连锁执行。简单的说就是,在 B 字段所触发的事件,不愿在其它单元格再触发另一个Worksheet_Change()事件。5、 Worksheet_Activate()6、 Worksheet_Calculate ( )7、 Worksheet_Be

10、foreRightClick ()Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)If Not Application.Intersect(Target, Range(D8) Is Nothing Then Cancel = TrueMsgBox (Target is Range D8 and Cancel is True !)ElseCancel = FalseEnd IfEnd Sub在 D12 按鼠标右键将呈现正常的右键菜单;在 D8 按鼠标右键将呈现一个对话框并且屏闭掉右键菜

11、单。8、 Worksheet_FollowHyperlink ( )9、 Worksheet_BeforeDoubleClick ( )10、 语句和语法A、 if -then-elseend ifB、 select caseSelect Case ActiveCell.ValueCase Is 60Cells(ActiveCell.Row, ActiveCell.Column + 1) = 不及格Case 60 To 89.9Cells(ActiveCell.Row, ActiveCell.Column + 1) = 良Case ElseCells(ActiveCell.Row, Activ

12、eCell.Column + 1) = 优End SelectC、 Do UntilLoop11、 设置忽略错误语句1:On Error Resume Next 表示:若发生错误,则忽略它,跳到下一条语句继续执行。语句2:On Error GoTo 行号(或标号) 表示:若运行有错,则跳到标号指定位置,转去执行错误处理例程。获取错误信息在宏执行过程中,可以通过专用调试对象Err的属性值来了解是否发生实时错误以及发生了什么样的错误。若Err.Number值为0,则表明没有产生错误,反之有错误。下面通过两个例子说明如何使用错误捕获技术。例1,假设有一学生档案工作簿StudentBook,其中已有若

13、干学生档案工作表Student1、Student2以及其它一些工作表。现需要建立一个新的Student学生档案工作表,但又不想删除已有的Student工作表,如同Excel增加新工作表一样,只将工作表名称的后缀加1。SubMakeNextStudent()DimSheetAsWorksheetDimBaseAsStringDimSuffixAsIntegerSetSheet=WorkSheets.AddBase=“Student”Suffix=1OnErrorResumeNextSheet.Name=Base&SuffixDoUntilErr.number=0Err.ClearSuffix=S

14、uffix+1Sheet.Name=Base&SuffixLoopEndSubMakeNextStudent宏的执行过程是:先建立一个新工作表,再试着以Student为基本名、1为后缀构成的名称给新工作表命名。OnErrorResumeNext语句的作用是:若已有同名工作表存在,Excel不能给新工作表命名时,VisualBaisc并不终止所执行的程序,而是自动给Err对象的Number属性赋值,设置出错信息代码,执行DoUntil循环。DoUntil循环首先检查命名是否成功,若不成功,则增加后缀值,再试着重新命名,再检查直到没有产生错误(即重新命名成功Err.Number=0),才结束循环。

15、Do语句后面的Err.Clear语句的作用是将出错信息代码重新置为0,让VisualBaisc忘记曾经发生的错误。例2,下面宏的功能是:当试图删除打开的文件时,错误处理例程先调用MsgBox函数提示用户文件正在使用,让用户确认是否要删除该文件,再作相应的处理。SubKillFile()OnErrorGoToKillFile_ErrOpenMyFileForOutputas#1KillMyFileExitSubKillFile_Err:myCheck=MsgBox(MyFile文件正在使用,是否要删除?,vbYesNo)IfmyCheck=vbYesThenClose#1KillMyFileEn

16、dIfEndSub12、 数值调节钮和滚动条控件从“视图”菜单中选“工具栏”命令,单击“控件工具箱”。单击“控件工具箱”中的“数值调节钮”控件,然后在周期单元格的右侧拖拽出一个大小合适的“数值调节钮”。单击“控件工具箱”上的“属性”按钮,在出现的属性窗口中设置Max属性值为30,Min属性值为5,LinkCell属性值为C4(它使得单击“数值调节钮”时,C4单元格的内容会相应变动),SmallChange属性值为5(它使得每单击“数值调节钮”一次,C4单元个的值增加或减少5)。如果数值增减幅度很小,再使用数值调节钮不太方便。故使用滚动条控件。同样可以设置Max、Min、SmallChange的

17、属性值。如果在C单元格输入一个数,将清除单元格中的公式,导致相应的滚动条失效。如果简单地将将工作表保护起来,虽然会避免用户输入无效值,但工作表被保护起来的同时,连ActiveX控件也不能改变相应单元格的值了。现采用另一种方法,既可以保护工作表 ,又能用Visual Basic程序改变单元格的值,这就是用事件控制程序。 首先,把与控件相连的单元格清除,即不用控件往单元格内填值,转而用事件控制程序往单元格内填写值。进入“设计模式”。选定第一个滚动条,将其的LinkCell属性清空。再单击“查看代码”按钮,在名为Private Sub ScrollBar1_Change()的事件控制程序中,添加下述

18、语句: Range(C3).Value = ScrollBar1.Value / 10000 类似地清除“数字调节钮”和第二个滚动条的LinkCell属性,在ScrollBar2_Change()事件过程中添加语句: Range(C5).Value = ScrollBar2.Value 在SpinButton1_Change()事件过程中添加语句: Range(C4).Value = SpinButton1.Value 这些事件控制程序使得单元格中的值随着控件的变化而变化。这时可以保护工作表了。在“工程”窗口中双击“ThisWorkbook”对象,进入“代码”窗口。在Workbook_Open

19、()事件控制程序中加入下述语句: Sheets(“Sheet1”).Protect User InterfaceOnly := True Workbook_Open事件过程是工作簿的默认事件,每当工作簿打开时执行。该语句的UserInterfaceOnly参数 使得宏可以改变那些用户和控件不能改变的单元格。这样用户就不能往工作表中输入内容了,实际上也不必输入,只要用鼠标简单操作哪些控件就可以了。图形用户界面最大的好处是将可选功能限制于那些有效功能之间,因此减少,甚至杜绝了用户出错的机会。13、 添加新菜单例子1.Private Sub Workbook_Open() Create main m

20、enu on the CommandBar MenuBars(xlWorksheet).Menus.Add Caption:=&Creat 文件 With MenuBars(xlWorksheet).Menus(Creat 文件) Add submenu and submenu items .MenuItems.Add Caption:=&打开文件, OnAction:=Userform1show 需要在模块中添加相应的宏 sub userform1show() End WithEnd Sub14、 选择类选择带有数的连续区域 Rows(3:3).Select Range(Selection,

21、 Selection.End(xlDown).Select选择第三行向下所有的连续带数值的行。如何选择当前工作表中的单元格?例如,可以使用下面的代码选择当前工作表中的单元格D5:ActiveSheet.Cells(5, 4).Select或:ActiveSheet.Range(D5).Select如何选择同一工作簿中其它工作表上的单元格?例如,要选择同一工作簿中另一工作表上的单元格E6,可以使用下面的代码:Application.Goto ActiveWorkbook.Sheets(Sheet2).Cells(6, 5)或:Application.Goto (ActiveWorkbook.Sh

22、eets(Sheet2).Range(E6)也可以先激活该工作表,然后再选择:Sheets(Sheet2).ActivateActiveSheet.Cells(6, 5).Select如何选择不同工作簿中的单元格?例如,要选择另一工作簿中的一个工作表上的单元格F7,可以使用下面的代码:Application.Goto Workbooks(BOOK2 ).Sheets(Sheet1).Cells(7, 6)或:Application.Goto Workbooks(BOOK2 ).Sheets(Sheet1).Range(F7)也可以先激活该工作簿中的工作表,然后再选择:Workbooks(BOO

23、K2.XLS).Sheets(Sheet1).ActivateActiveSheet.Cells(7, 6).Select如何选择当前工作表中的单元格区域?例如,要选择当前工作表中的单元格区域C2:D10,可以使用下面的代码:ActiveSheet.Range(Cells(2, 3), Cells(10, 4).Select或:ActiveSheet.Range(C2:D10).Select或:ActiveSheet.Range(C2, D10).Select如何选择同一工作簿中另一工作表上的单元格区域?例如,要选择同一工作簿中另一工作表上的单元格区域D3:E11,可以使用下面的代码:Appl

24、ication.Goto ActiveWorkbook.Sheets(Sheet3).Range(D3:E11)或:Application.Goto ActiveWorkbook.Sheets(Sheet3).Range(D3, E11)也可以先激活该工作表,然后再选择:Sheets(Sheet3).ActivateActiveSheet.Range(Cells(3, 4), Cells(11, 5).Select如何选择不同工作簿中工作表上的单元格区域?例如,要选择另一工作簿中某工作表上的单元格区域E4:F12,可以使用下面的代码:Application.Goto Workbooks(BOO

25、K2 ).Sheets(Sheet1).Range(E4:F12)或:Application.Goto Workbooks(BOOK2 ).Sheets(Sheet1).Range(E4, F12)也可以先激活该工作表,然后再选择:Workbooks(BOOK2).Sheets(Sheet1).ActivateActiveSheet.Range(Cells(4, 5), Cells(12, 6).Select如何在当前工作表中选择命名区域?例如,要选择当前工作表中名为“Test”的区域,可以使用下面的代码:Range(Test).Select或:Application.Goto Test如何选

26、择同一工作簿中另一工作表上的命名区域?例如,选择同一工作簿中另一工作表上名为“Test”的区域,可使用下面的代码:Application.Goto Sheets(Sheet1).Range(Test)也可以先激活工作表,再选择:Sheets(Sheet1).ActivateRange(Test).Select如何选择与当前单元格相关的单元格?例如,要选择距当前单元格下面5行左侧4列的单元格,可以使用下面的代码:ActiveCell.Offset(5, -4).Select要选择距当前单元格上方2行右侧3列的单元格,可以使用下面的代码:ActiveCell.Offset(-2, 3).Selec

27、t注意:一定要保证当前单元格与所选单元格之间的距离在工作表范围内,否则会出错。如何选择与另一单元格(不是当前单元格)相关的单元格?例如,要选择距单元格C7下方5行右侧4列的单元格,可以使用下面的代码:ActiveSheet.Cells(7, 3).Offset(5, 4).Select或:ActiveSheet.Range(C7).Offset(5, 4).Select如何选择一个指定的区域并扩展区域的大小?例如,要选择当前工作表中名为“Database”区域,然后将该区域向下扩展5行,可以使用下面的代码:Range(Database).SelectSelection.Resize(Selec

28、tion.Rows.Count + 5, Selection.Columns.Count).Select如何选择一个指定的区域,再偏离,然后扩展区域的大小?例如,选择名为“Database”区域下方4行右侧3列的一个区域,然后扩展2行和1列,可以使用下面的代码:Range(Database).SelectSelection.Offset(4, 3).Resize(Selection.Rows.Count + 2, Selection.Columns.Count + 1).Select如何选择两个或多个指定区域?例如,为了同时选择名为“Test”和“Sample”的两个区域,可以使用下面的代码:

29、Application.Union(Range(Test), Range(Sample).Select注意,这两个区域须在同一工作表中,如下面的代码:Set y = Application.Union(Range(Sheet1!A1:B2), Range(Sheet1!C3:D4)但Union方法不能处理不同工作表中的区域,可下面的代码:Set y = Application.Union(Range(Sheet1!A1:B2), Range(Sheet2!C3:D4)将会出错。如何选择两个或多个指定区域的交叉区域?例如,要选择名为“Test”和“Sample”的两个区域的交叉区域,可以使用下面

30、的代码:Application.Intersect(Range(Test), Range(Sample).Select注意,两个区域必须在同一工作表中。下面的示例使用了如下图所示的工作表。如何选择连续数据列中的最后一个单元格?例如,要选择一个连续列中的最后一个单元格,可以使用下面的代码:ActiveSheet.Range(a1).End(xlDown).Select该代码使用在上面的工作表中,单元格A4被选择。如何选择连续数据列底部的空单元格?例如,要选择连续单元格区域下面的单元格,可以使用下面的代码:ActiveSheet.Range(a1).End(xlDown).Offset(1, 0).Select该代码使用在上面的工作表中,单元格A5被选择。如何选择某列中连续数据单元格区域?例如,要选择一列中的连续数据单元格区域,可以使用下面的代码:ActiveSheet.Range(a1, ActiveSheet.Range(a1).End(xlDown).Select或:ActiveSheet.Range(a1: & ActiveSheet.Range(a1).End(xlDown).Address).Select该代码使用在上面的工作表中,单元格区域A1:A4将被选择

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1