VBA初级知识

来源:互联网 发布:医药软件有哪些 编辑:程序博客网 时间:2024/05/17 09:31

VBA函数 =========

      用Excel的时间相信你也不短了,什么是函数就不再细说了。 与其他编程语言一样,VBA含有各种内置的函数。很多的VBA函数都与Excel的工作表函数类似,或者一样。 使用VBA函数的的方式与使用工作表公式中函数的方式相同,在VBA代码中,我们可以使用很多Excel的工作表函数,例如Sum,Abs等。 例如:复制内容到剪贴板代码:

Sub myabs()

 a = InputBox("请输入数值:", "提示")

labs = Abs(a)

MsgBox "你输入的值的绝对值为:" & labs

 End Sub

 

这是一个求绝对值的过程,通过InputBox提示用户输入一个数值给变量a,再用Abs函数求出变量的绝对值,最后通过MsgBox返回结果。 InputBox同MsgBox函数一样,是很常用的函数,关于它的功能及用法,请用绝招:抹黑,按F1,

 

 

 

 

IF语句的学习

 

Sub test1()
  If [a1] = "" Then
      MsgBox "A1单元格没有输入任何内容!"
  End If
End Sub
Sub test2()
  If [a1] = "" Then
        MsgBox "A1单元格没有输入任何内容!"
  Else
        MsgBox "A1单元格已经输入了内容!"
  End If
End Sub

Sub test3()
   If [a1] = "" Then
       MsgBox "A1单元格没有输入任何内容!"
   ElseIf [a1] Mod 2 = 0 Then
       MsgBox "A1单元格的数能被2整除!"
   ElseIf [a1] Mod 3 = 0 Then
       MsgBox "A1单元格的数能被3整除!"
   ElseIf [a1] Mod 5 = 0 Then
       MsgBox "A1单元格的数能被5整除!"
   Else
       MsgBox "A1单元格的数不能被2、3、5其中之一整除!"
   End If
End Sub

 

 

程序流程控制——Select Case语句
=============================
  Select Case语句同IF语句一样,也是条件判断的语句。它的功能也可以用IF语句来完成。但是,当程序的条件太多,用IF语句来判断的话就存在一些不足了,比如程序是否美观?是否便于阅读?程序的执行效率等等。Select Case语句在执行的效率上,同IF语句相比,肯定是要快得多。

[Select Case语句的语法]
  Select Case 测试表达式
        Case 条件表达式1
              语句块1
        Case 条件表达式2
              语句块2
       Case 条件表达式3
              语句块3
       ......
       Case 条件表达式n
              语句块n
       Case Else
              语句块Else
     End Select.

当某个条件表达式与测试表达式相匹配时,则执行其后的语句块,否则执行Case Else后的语句块,然后结束Select Case块的执行。同IF语句一样,可以不要Case Else语句。
“如对A1单元格的学生成绩进行等级评定,小于等于30分的为差,30分到59分的为不及格,60分到79分的为及格,80分到89分的为良好,90到100分的为优秀。”用Select Case语句来解决就是:

 

 

Sub test()
  If [a1].Value = "" Then
      MsgBox "A1单元格没有输入数字。"
      Exit Sub '     退出程序
  End If
  Select Case [a1].Value
      Case 0 To 29
          MsgBox "差"
      Case 30 To 59
          MsgBox "不及格"
      Case 60 To 79
          MsgBox "及格"
      Case 80 To 89
          MsgBox "良好"
      Case Else
          MsgBox "优秀"
  End Select
End Sub

 

 

 

程序流程控制——For—Next 循环语句
=============================
什么是循环?
这里我们指的循环是指重复地执行某项动作(语句块)。

问题:求1到1000的自然数的和。程序编为

Sub mysum()
Dim Lsum As Long, i As Long
For i = 1 To 1000
    Lsum = Lsum + i
Next
MsgBox "1到1000的自然数和为:" & Lsum
End Sub

 

 

 

:撰写:38度:老朽
      '日期:2009-7-1 上午 11:40:59
Sub 求1到10000之间偶数和()
    Dim I&, J&
    For I = 0 To 10000 Step 2
        J = J + I
    Next
    MsgBox "1到10000之间偶数和为" & J
End Sub

 

    '撰写:38度:老朽
      '日期:2009-7-1 上午 11:40:59
Sub 求1到10000之间能被5整除的数之和()
    Dim I&, J&
    For I = 0 To 10000 Step 5
        J = J + I
    Next
    MsgBox "1到10000之间能被5整除的数之和为" & J
End Sub

 

 

For—Each语句的句式:

For Eacn 元素变量 In 对象集合或数组名称
      语句块1
      [Exit For]
      语句块2
next 元素变量


和上面For—next句式是一样的工作原理。
这里的“元素变量”是用来遍历集合或数中中元素的变量,它从集合或数组的第一个元素开始,直到最后一个元素,然后退出循环。

 

 

这里我们举个例子,把当前工作薄中工作表的名称写在A列,程序为:

代码:

Sub shtname()
Dim i As Integer, sht As Worksheet
i = 1
For Each sht In Worksheets
    Cells(i, 1) = sht.Name
    i = i + 1 '让写入名称的单元格下移一行
Next
End Sub

 

程序流程控制——Do While语句
===========================
Do While也是循环语句,它分为两种情况,一种是把循环条件放在开头,一种是把循环条件放在结尾。

1、开头判断循环条件
    语句格式:
       Do Wihle 循环条件
            语句块1
           [Exit Do]
            语句块2
      Loop
    首先判断循环条件,条件为真则执行Do到Loop之间的语句。

2、结尾判断循环条件
    语句格式:
        Do
            语句块1
           [Exit Do]
            语句块2
       Loop Wihle 循环条件


      先执行一次Do到Loop之间的语句,再判断循环条件,满足条件则进行循环。
两种格式的区别:因为第二种格式是把循环体放在尾部,得先执行一遍语句再进行循环条件判断,所以,同样的条件,第二种格式的循环会比第一种多执行一次循环部份的语句。
我们用Do While语句来解决

求1——1000的自然数的和的问题

 

 

 

 


原创粉丝点击