首页 VBA入门教程

VBA入门教程

举报
开通vip

VBA入门教程           几种用VBA在单元格输入数据的方法            作者:KLYan   出处:officefans     这是试写的VBA的课程 VBALesson1,希望各位给予意见,以便以后改进。 程序说明: 几种用VBA在单元格输入数据的方法: Public Sub Writes() 1-- 2 方法,最简单在 "[ ]" 中输入单元格名称。 1 [A1] = 100 '在 A1 单元格输入100。 2 [A2:A4] = 10 '在 A2:A4 单元格输入10。 3-- 4 方法,采...

VBA入门教程
           几种用VBA在单元格输入数据的 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载            作者:KLYan   出处:officefans     这是试写的VBA的课程 VBALesson1,希望各位给予意见,以便以后改进。 程序说明: 几种用VBA在单元格输入数据的方法: Public Sub Writes() 1-- 2 方法,最简单在 "[ ]" 中输入单元格名称。 1 [A1] = 100 '在 A1 单元格输入100。 2 [A2:A4] = 10 '在 A2:A4 单元格输入10。 3-- 4 方法,采用 Range(" "), " " 中输入单元格名称。 3 Range("B1") = 200 '在 B1 单元格输入200。 4 Range("C1:C3") = 300 '在 C1:C3 单元格输入300。 5-- 6 方法,采用 Cells(Row,Column),Row是单元格行数,Column是单元格栏数。 5 Cells(1, 4) = 400 '在 D1 单元格输入400。 6 Range(Cells(1, 5), Cells(5, 5)) = 50 '在 E1:E 5单元格输入50。 End Sub 你点选任何单元格,按 Selection 按钮,則则所点选的单元格均会被输入文字 "Test"。 Public Sub Selection1() Selection.Value = "Test" '在任何你点选的单元格输入文字 "Test"。 End Sub "观看本程序的方法: 粗体文字为程序,其它字体均为 说明文 说明文阅读下载车辆车牌变更物业说明文档下载说明文档下载课外说明文阅读选择题及答案说明文答题技巧及套路 字。 按快捷键 Alt+F11即可看到程序。"               读取别 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 数据            作者:KLYan   出处:officefans      几种如何把别的工作表 Sheet4 数据,读到这个工作表的方法:在被读取的单元格前加上工作表名称 Sheet4。 Public Sub Writes() 1-- 2 方法,最简单在被读取的 "[ ]" 前加上被读取的工作表名称 Sheet4。 1 [A1] = Sheet4.[A1] '把Sheet4 A1 单元格的数据,读到 A1单元格。 2 [A2:A4] = Sheet4.[B1] ''把 Shee4 工作表单元格 B1 数据,读到 A2:A4 单元格。 3-- 4 方法,在被读取的工作表 Range(" ")的 Range 前加上被读取的工作表名称Sheet4。 3 Range("B1") = Sheet4.Range("B1") ''把 Shee4工作表单元格 B1 数据,读到 B1 单元格。 4 Range("C1:C3") = Sheet4.Range("C1") '把 Shee4 工作表单元格 C1 数据,读到 C1:C3 单元格。 5-- 6 方法,在被读取的工作表 Cells(Row,Column),Cells 前加上被读取工作表名称 Sheet4。 5 Cells(1, 4) = Sheet4.Cells(1, 4) '把 Shee4 工作表单元格 D1 数据,读到 D1 单元格。 6 Range(Cells(1, 5), Cells(5, 5)) = Sheet4.Cells(1, 5) '把 Shee4 工作表单元格 E1 数据,读到 E1:E 5单元格。 End Sub 你点选任何单元格,按 Selection 按钮,则所点选的单元格均会被输入 Shee4 工作表单元格 F1 数据。 Public Sub Selection1() Selection.Value = Sheet4.[F1] '把 Shee4 工作表单元格 F1 数据,读到任何你点选的单元格。 End Sub               读取别表数据            作者:KLYan   出处:officefans      几种如何把别的工作表 Sheet4 数据,读到这个工作表的方法:在被读取的单元格前加上工作表名称 Sheet4。 Public Sub Writes() 1-- 2 方法,最简单在被读取的 "[ ]" 前加上被读取的工作表名称 Sheet4。 1 [A1] = Sheet4.[A1] '把Sheet4 A1 单元格的数据,读到 A1单元格。 2 [A2:A4] = Sheet4.[B1] ''把 Shee4 工作表单元格 B1 数据,读到 A2:A4 单元格。 3-- 4 方法,在被读取的工作表 Range(" ")的 Range 前加上被读取的工作表名称Sheet4。 3 Range("B1") = Sheet4.Range("B1") ''把 Shee4工作表单元格 B1 数据,读到 B1 单元格。 4 Range("C1:C3") = Sheet4.Range("C1") '把 Shee4 工作表单元格 C1 数据,读到 C1:C3 单元格。 5-- 6 方法,在被读取的工作表 Cells(Row,Column),Cells 前加上被读取工作表名称 Sheet4。 5 Cells(1, 4) = Sheet4.Cells(1, 4) '把 Shee4 工作表单元格 D1 数据,读到 D1 单元格。 6 Range(Cells(1, 5), Cells(5, 5)) = Sheet4.Cells(1, 5) '把 Shee4 工作表单元格 E1 数据,读到 E1:E 5单元格。 End Sub 你点选任何单元格,按 Selection 按钮,则所点选的单元格均会被输入 Shee4 工作表单元格 F1 数据。 Public Sub Selection1() Selection.Value = Sheet4.[F1] '把 Shee4 工作表单元格 F1 数据,读到任何你点选的单元格。 End Sub         利用 Worksheet_SelectionChange 在限定的单元格输入数据           作者:KLYan   出处:officefans    如何利用 Worksheet_SelectionChange 在限定的单元格输入数据的方法。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Row >= 2 And Target.Column = 2 Then Target = 100 End If End Sub If ... Then ... End If 这是我们学的这一个逻辑判断语句。 Target.Row >= 2,指的是鼠标选定的单元格的行大于或等于 2。 Target.Column = 2 ,指的是鼠标选定的单元格的栏等于 2。 If Target.Row >= 2 And Target.Column = 2 Then 指的是只有在Target.Row >= 2及Target.Column = 2二个条件成立时。 就是 (Target.Row >= 2) 为True及(Target.Column = 2)为True时,才执行下面的程序 Target=100, 也就是 B 栏第二行及以下行用鼠标被点选时,才会被输入100,其它单元格则不被输入数据。      比较Worksheet_SelectionChange()与CommandButton1_Click()          作者:KLYan   出处:officefans    比较 Worksheet_SelectionChange() 与用按钮 CommandButton1_Click() 来执行程序二者的方法与写法有何不同。 Worksheet_SelectionChange()事件 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Row >= 2 And Target.Column = 2 Then Target = 100 End If End Sub 按鈕 CommandButton1_Click() Private Sub CommandButton1_Click() If ActiveCell.Row >= 2 And ActiveCell.Column >= 3 Then ActiveCell = 100 End If End Sub 二者执行方法最大的地方,在于 Worksheet_SelectionChange() 是自动的,你不用了解他是怎么完成工作的。 按钮 CommandButton1_Click() 是人工的,比 SelectionChange()多一道手续,就是要去按那接钮,程序才会执行。 SelectionChange() 有一个参数 Target 可用;CommandButton1_Click ()没有。 所以我们要用 ActiveCell 内定函数来取代Target,ActiveCell 与 Target最大的不同点他只能指定一个单元格。 就是你选取多个单元格也只有最上面的单元格会加上数据;用 Selection 取代 ActiveCell, 用法就跟 Target 一样了。            完整的 If.Then End 逻辑判断式           作者:KLYan   出处:officefans    完整的 If...Then ┅ End 逻辑判断式。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Row >= 2 And Target.Column = 2 Then Target = 200 ElseIf Target.Row >= 2 And Target.Column = 3 Then Target = 300 ElseIf Target.Row >= 2 And Target.Column = 2 Then Target = 400 Else Target = 500 End If End Sub 这是个完整的 If 逻辑判断式,意思是说,假如 If 後的判断式条件成立的话,就执行第二条程序,否则假如 ElseIf 後的判断式条件成立的话,就执行第四条程序,否则假如另一个 ElseIf 後的判断式条件成立的话,就执行第六条程序。 Else 的意思是说,假如以上条件都不成立的话,就执行第八条程序。 他的执行方式是假如 IF 的条件成立的话,就不执行其它ElseIf 及Else 的逻辑判断式,假如 If 後的条件不成立的话才会执行 ElseIf 或 Else 逻辑判断式。第二个 ElseIf後的条件因为与 IF 後的条件一样,所以这个判断式後面的 Target=400 将是永远无法执行到的程序。                为什麽要用变数           作者:KLYan   出处:officefans    我们为什麽要用变数。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim i , j As Integer Dim k As Range i = Target.Row j = Target.Column Set k = Target If i >= 2 And j = 2 Then k = 200 ElseIf i >= 2 And j = 3 Then k = 300 ElseIf i >= 2 And j = 4 Then k = 400 Else k = 500 End If End Sub 跟VBALesson 6比较,程序是不是明朗多了,在前课重复的用 Target.Row,Target.Column及Target来写程序是不是有一点烦。用变量的第一个好处大家马上感觉得出来,就是可以简化程序。 使用变量前,你得先宣告变量。宣告变量的方法是在 "Dim " 后面写上变量 " i " As 后面接上变量的形态 "Integer"。 Dim i , j As Integer 就是宣告 i 与 j 为整数变量,这是同时宣告二个变量 i 与 j 所以要在二个变量间加个 " , "号。 Dim k As Range 是宣告 k 为范围资料形态,Range这是 Excel 特有的资料形态。 i = Target.Row是把当前单元格的行数,指定给变量 i。 j = Target.Column 是把当前单元格的栏数,指定给变量 j。 Set k = Target 是把当前的单元格,指定给变量 k。 用像 i 与 j 这样简单的变量,在程序的前面你可能还记得 i 或 j 代表着什厶。程序写长了,你可能忘记 i 或 j 代表着什厶。所以最好的方法是用比较有意义的代号,来为变量命名如 iRow 或 iCol 来取代 i 及 j 。               Worksheet_Change()事件           作者:KLYan   出处:officefans    体会一下Worksheet_Change()事件。 Private Sub Worksheet_Change(ByVal Target As Range) Dim iRow, iCol As Integer iRow = Target.Row iCol = Target.Column If iRow >= 2 And iCol = 2 And Target <> "" Then Application.EnableEvents = False Cells(iRow, iCol + 1) = Cells(iRow, iCol) * 2 Application.EnableEvents = True ElseIf iRow >= 2 And iCol = 2 And Target = "" Then Cells(iRow, iCol + 1) = "" Else Cells(iRow, iCol + 1) = "" End If End Sub 前几个教程都是用Worksheet_SelectionChange 事件来举例子,大家应该能体会他是怎厶一回事了吧。 这个教程就是要让你来体会什厶是Worksheet_Chang()事件。因为这二个事件在VBA都是非常有用的,所以一定要了解。 简单的说,前者是你鼠标移动到那个单元格,就触发那个事件的执行。後者是要等到你点选的单元格,数有了改变才会触发事件的执行。二者执行的时机一前一後。 Target <> "" 是代表限定当前的单元格要是有数的,才会执行以下三行的程序。 Cells(iRow, iCol + 1) = Cells(iRow, iCol) * 2,是你在 B 栏输入数时,C 栏将可得到 B 栏二倍的数。 Target = "" 是限定当前的单元格要是没有数的,才会执行以下一行的程序。 Cells(iRow, iCol + 1) = "",是把 C 栏的数清成空格。 Application.EnableEvents = False与Application.EnableEvents = True,这是个成双的程序,当你用了前者记得在执行其他程序後要写上後面的程序。它的目的在抑制事件连锁执行。简单的说就是,在 B 字段所触发的事件,不愿在其它单元格再触发另一个Worksheet_Change()事件。           Worksheet_Change()事件连锁反应           作者:KLYan   出处:officefans    体会一下Worksheet_Change()事件连锁反应。 Private Sub Worksheet_Change(ByVal Target As Range) Dim iRow As Integer iRow = Target.Row Application.EnableEvents = False Cells(iRow, 3) = Cells(iRow, 3) + Cells(iRow, 2) Application.EnableEvents = True End Sub Private Sub Worksheet_Change(ByVal Target As Range) Dim iRow As Integer iRow = Target.Row 'Application.EnableEvents = False Cells(iRow, 3) = Cells(iRow, 3) + Cells(iRow, 2) 'Application.EnableEvents = True End Sub 这个程序的目的是要在 B2 输入新的数时,C2 会将 B2 输入的新数加上 C2 原有的数呈现在 C2 上。 照上面有加上 Application.EnableEvents = False 程序执行当然没问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 。 现在你在 Application.EnableEvents = False 与 Application.EnableEvents = True 前加上「 '」看看。 程序前加上「 '」的目的是要使「 '」之后的文字变成说明文字,程序执行时是会跳过说明文字,不执行说明文字的内容。 程序前加上「 '」符号后,文字会变成绿色。 执行第二个程序时,你将发现 C2 不会按你所要求的,呈现结果。 这就是所谓的事件连锁反应。            Worksheet_Activate()事件           作者:KLYan   出处:officefans    体会一下Worksheet_Activate()事件。 这个程序的目的是要大家体会一下 Worksheet_Activate() 事件的意义与用法,大家暂且不用去了解事件的程序代码。 我们在 "出毛登记表"工作表 K栏打勾选取我们要的数 。 当打开 "发毛单" 工作表时, "出毛登记表" 工作表 K栏有打勾的那一行数 自动就复制至 "发毛单" 工作表。 这样的做法可省去我们做一个按钮,用人工的方法将数 复制至 "发毛单" 工作表。但有个後遗症,那就是每次打开 "发毛单" 工作表时Excel一定会执行这个程序,增加Excel 的工作量。            Worksheet_Activate()事件           作者:KLYan   出处:officefans    体会一下Worksheet_Activate()事件。 这个程序的目的是要大家体会一下 Worksheet_Activate() 事件的意义与用法,大家暂且不用去了解事件的程序代码。 我们在 "出毛登记表"工作表 K栏打勾选取我们要的数 。 当打开 "发毛单" 工作表时, "出毛登记表" 工作表 K栏有打勾的那一行数 自动就复制至 "发毛单" 工作表。 这样的做法可省去我们做一个按钮,用人工的方法将数 复制至 "发毛单" 工作表。但有个後遗症,那就是每次打开 "发毛单" 工作表时Excel一定会执行这个程序,增加Excel 的工作量。          Worksheet_BeforeRightClick () 事件           作者:KLYan   出处:officefans    体会一下 Worksheet_BeforeRightClick () 事件。 Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) If Not Application.Intersect(Target, Range("D8")) Is Nothing Then Cancel = True MsgBox ("Target is Range D8 and Cancel is True !") Else Cancel = False End If End Sub 这个程序的目的是要大家体会一下Worksheet_BeforeRightClick () 事件的意义与用法。 Worksheet_BeforeRightClick () 事件也有二个参数,Target 以前介绍过了,另一个参数 Cancel 是做什厶用途的呢? 这个 Cancel 与前一个教程 Worksheet_BeforeDoubleClick () 的 Cancel 是有所不同的。 这个 Cancel 假如设定成 True 的话,将屏闭掉鼠标右键的菜单。 你可以在VBALesson 12工作表 的 D8 单元格 与 D12 单元格,按鼠标右键试看看有何不同。 在 D12 按鼠标右键将呈现正常的右键菜单;在 D8 按鼠标右键将呈现一个对话框并且屏闭掉右键菜单。           Worksheet_BeforeRightClick () 事件           作者:KLYan   出处:officefans    体会一下 Worksheet_BeforeRightClick () 事件。 Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) If Not Application.Intersect(Target, Range("D8")) Is Nothing Then Cancel = True MsgBox ("Target is Range D8 and Cancel is True !") Else Cancel = False End If End Sub 这个程序的目的是要大家体会一下Worksheet_BeforeRightClick () 事件的意义与用法。 Worksheet_BeforeRightClick () 事件也有二个参数,Target 以前介绍过了,另一个参数 Cancel 是做什厶用途的呢? 这个 Cancel 与前一个教程 Worksheet_BeforeDoubleClick () 的 Cancel 是有所不同的。 这个 Cancel 假如设定成 True 的话,将屏闭掉鼠标右键的菜单。 你可以在VBALesson 12工作表 的 D8 单元格 与 D12 单元格,按鼠标右键试看看有何不同。 在 D12 按鼠标右键将呈现正常的右键菜单;在 D8 按鼠标右键将呈现一个对话框并且屏闭掉右键菜单。 PAGE 1
本文档为【VBA入门教程】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_979059
暂无简介~
格式:doc
大小:55KB
软件:Word
页数:11
分类:互联网
上传时间:2011-12-08
浏览量:73