Visual Basic for Application

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   'The note of Visual Basic for Application
   'VBA 是由微软开发出来的一种宏语言,寄于对Windows桌面程序功能的扩展,和VB语言结构相似,是VB的子集;
   'VBA常见的作用:
       '1.规范用户的操作,控制用户的操作行为;
       '2.操作界面人性化,方便用户的操作;
       '3.多个步骤的手工操作通过执行VBA代码可以迅速的实现;
       '4.实现一些VB无法实现的功能;
       '5.用VBA制做EXCEL登录系统;
       '6.利用VBA可以Excel内轻松开发出功能强大的自动化程序.
   'VBA中常见的数据类型:
       '1.  Integer    整型     %
       '2.  Single    单精度    !
       '3.  Double    双精度    #
       '4.  String    字符串    $
       '5.  Long      长整型    &
       '6.  Currency  货币型    @

    'VBA判断语句:
      '(1)IF判断语句:
       '单行判断语句:不需要使用End If
               Dim a As Integer
               a = 4
               If a > 3 Then MsgBox "大于3"
  
      '多行判断语句:需要使用End If
               If a > 2 Then
                        MsgBox "大于2"
               ElseIf a > 5 Then
                        MsgBox "大于5"
               Else
                        MsgBox "feirup"
              End If
      '(2)IIF判断语句:
               MsgBox IIf(a > 2, "不错", "一般")

      '选择语句:
        'Select Case语句:
               Dim i As Integer
               i = 1
               Select Case i
                        Case Is > 0
                               MsgBox "正数"
                        Case Is < 0
                               MsgBox "负数"
                        Case Else
                               MsgBox "0"
                End Select
     '循环语句:
       'DO...LOOP语句:
                Dim t As Integer
                t = 1
                Do
                    t = t + 1
                    If t > 10 Then MsgBox "大于10了"
                Loop

    'While语句:
             Dim rs%
             rs = 2
   
            Do While Cells(rs, 2) <> ""
                 Cells(rs, 3) = "非若"
                 rs = rs + 1
            Loop
    'Until循环语句:
            Dim t%
            t = 2
            Do Until Cells(t, 2) = ""
                  Cells(t, 3) = "feiruo"
                   t = t + 1
            Loop
    'for each...next语句:

            Dim rng As Range, n!
            For Each rng In Sheet1.Range("a1:a10")
                  If rng = "A3" Then
                     rng.Interior.ColorIndex = 3
                  Else
                     rng.Interior.ColorIndex = 6
                  End If
            Next
    'for...next语句:
            Dim i!, j!
            For i = 1 To 100 Step 2
                 j = j + 1
            Next i
            MsgBox "j=" & j

     'End与Exit语句:
          '1. Exit Do
          '2.Exit For
          '3.Exit Function
          '4.Exit Sub
            Dim r!
            For r = 2 To 7
              If Sheet1.Cells(r, 1) = "非若" Then
            Exit For
              End If
            Next r
            MsgBox "非若(第一个)在第" & r & "行!"


         Sub button()

          '1.End
          '2.End Function
          '3.End If
          '4.End Select
          '5.End Sub
             Dim i!
              i = 3
            MsgBox "i=" & i
             End '直接停止程序
            MsgBox "退出le"
             End Sub

    '跳转语句:
    'GoTo line无条件转移程序中指定的程序行
         Dim str$, k!
         k = 1
      line:
         k = k + 1
         If k > 3 Then Exit Sub
              str = InputBox("请输入用户名!")
         If str <> "admin" Then GoTo line
   '错误分支语句:
         Dim i!
        'On Error Resume Next '当遇到错误的时候继续执行下去
         On Error GoTo ERROR:

             For i = 2 To 8
                  Cells(i, 4) = Cells(i, 3) + Cells(i4)
             Next i
             MsgBox "运行完毕"

ERROR: MsgBox "遇到错误!"

    'width语句:对某个对象执行一系列的语句是,不用重复指出对象的名称
           'a = Range("a1").Address
           'b = Range("a1").Parent.Name
      With Range("a1")
           a = .Address
           b = .Parent.Name
          MsgBox a '$A$1
          MsgBox b 'Sheet1
      End With
    


End Sub
'VBA 函数:
   Dim i%
   
   For i = 1 To 11 Step 1
   Sheet1.Cells(i, 4) = "=sum(a" & i & ":b" & i & ")"
   Sheet1.Cells(i, 3) = "=COUNTIF(A1:A11,"">12"")"
   Sheet1.Cells(i, 5) = "=sum(INDIRECT(""a1:a10""))"
   Next i

Dim i%
   
   MsgBox Application.WorksheetFunction.CountIf(Range("a1:a10"), 14) '3  统计3的14的个数 等价于:
   
   'MsgBox Application.CountIf(Range("a1:a10"), 14)
   
   'MsgBox WorksheetFunction.CountIf(Range("a1:a10"), 14)
   
    MsgBox VBA.Format(Range("b1"), "0.00")
    
    MsgBox Format(Range("b1"), "0.00")

 '自定义函数:
    Function sex(rng As Range)
     MsgBox sex = IIf(Mid(rng, 15, 3) Mod 2, "", "")
   End Function

 

 

 

                                                                                                                                        -------非若------

                                                                                                                                          2015.09.24

posted @ 2015-09-24 21:32  非若  阅读(1426)  评论(0编辑  收藏  举报