账屋网建账账务报表税务软件准则
您的位置:首页>软件教程>Excel>VBA实例精解(一)

VBA实例精解(一)

分享:
来源:转载更新时间:2017-06-19

  【例】在选择某一个学生的成绩的时候,往往会发生错行的情况,而这个程序可以使您在选择某一个成绩时,自动显示该学生的所有信息。

  代码如下:

  Private Sub Worksheet_SelectionChange(ByVal Target As Range)

  If (Target.Column 1) Then

  Cells(Target.Row, 1).Select

  MsgBox "姓名: " & Me.Cells(Target.Row, 1) & Chr(13) _

  & "语文: " & Me.Cells(Target.Row, 2) & Chr(13) _

  & "数学: " & Me.Cells(Target.Row, 3) & Chr(13) _

  & "英语: " & Me.Cells(Target.Row, 4) & Chr(13) _

  & "物理: " & Me.Cells(Target.Row, 5) & Chr(13) _

  & "化学: " & Me.Cells(Target.Row, 6) & Chr(13) _

  & "地理: " & Me.Cells(Target.Row, 7) & Chr(13) _

  & "历史: " & Me.Cells(Target.Row, 8) & Chr(13) _

  & "生物: " & Me.Cells(Target.Row, 9) & Chr(13) _

  & "体育: " & Me.Cells(Target.Row, 10) & Chr(13) _

  & "总分: " & Me.Cells(Target.Row, 11) & Chr(13) _

  , vbOKOnly, "提示"

  End If

  End Sub

       程序实现后的结果:

  首先,这个代码使用了一条语句,Msgbox,这条语句的作用是调用一个消息对话框,这个语句带有三个参数,各个参数之间都用逗号分隔。

  其次,我们看到该语句的第一个参数就占据了好几行,那么大家可能会问,不是在上一讲中提到了VBA识别判断是否是一条语句就凭借换行符吗?那么像这样在多行中的语句为什么是属于同一条语句呢?这个主要是因为有时候语句太长,如果在一行写可能会导致格式混乱且不容易阅读和理解,所以我们就使用下划线(即:“_”)来将未写完的代码转到下一行继续写,并告诉系统,该语句在这行没有结束,下行还是属于该语句的内容。让我们仔细看看第一个参数的内容,总体上是一个字符串,该字符串由个部分构成,每个部分占据了一行,每个部分都是由工作表中的列标题字符串组成,“&”符号表示两个字符串之间的连接符,通过该符号,后面跟了一串代码,看起来也像个函数的样子(为什么说像函数呢?也为有函数名、括号和括号里的参数),对,这个是一个集合,其中的“me”表示引用本工作表,例如这里就是指Worksheet1工作表,“Cells”表示本工作表的所有单元格的集合,其中的参数表示行序号和列序号,这个在昨天的讲解中讲过。其实这里省略了一个部分,完整的应该是这样写“Me.Cells(Target.Row, 1).Value”,即这里返回的是指定单元格内的值,为啥省略呢?由于Value属性是Cells集合的默认属性,所以可以省略不写。最后,还跟了一个函数,即“Chr(13)”,这个函数的参数为一个整数值,作用是返回ASCII编码表中对应该整数值的字符或不可打印符号的。比如这里的13,在ASCII表中就对应了换行符,那么通过这个函数就返回了一个换行符,这样就可以让每个列标题的部分在对话框中占据一行的位置。

责任编辑:zoe 会计新锐实操训练营
+添加微信:15302720757有趣有料分享干货的会计圈: