zoukankan      html  css  js  c++  java
  • vba 对象介绍

    VBA对象

    'VBA中的对象其实就是我们操作的具有方法、属性的excel中支持的对象

    'Excel中的几个常用对象表示方法

    '1、工作簿

    ' Workbooks 代表工作簿集合,所有的工作簿,Workbooks(N),表示已打开的第N个工作簿
    ' Workbooks ("工作簿名称")
    ' ActiveWorkbook 正在操作的工作簿
    ' ThisWorkBook '代码所在的工作簿

      '2、工作表

        ' 'Sheets("工作表名称")
          'Sheet1 表示第一个插入的工作表,Sheet2表示第二个插入的工作表....
          'Sheets(n) 表示按排列顺序,第n个工作表
          'ActiveSheet 表示活动工作表,光标所在工作表
          'worksheet 也表示工作表,但不包括图表工作表、宏工作表等。

      '3、单元格

           'cells 所有单元格
           'Range ("单元格地址")
           'Cells(行数,列数)
           'Activecell 正在选中或编辑的单元格
           'Selection 正被选中或选取的单元格或单元格区域
      

    VBA属性

    'VBA属性就是VBA对象所具有的特点
    '表示某个对象的属性的方法是

    '对象.属性=属性值

     Sub ttt()
          Range("a1").Value = 100
        End Sub
    
        Sub ttt1()
          Sheets(1).Name = "工作表改名了"
        End Sub
    
        Sub ttt2()
        
           Sheets("Sheet2").Range("a1").Value = "abcd"
        
        End Sub
        
        
        Sub ttt3()
         
          Range("A2").Interior.ColorIndex = 3
          
        End Sub

    '二 、VBA方法

    'VBA方法是作用于VBA对象上的动作

    '表示用某个方法作用于VBA的对象上,可以用下面的格式:

     Sub ttt4()
      
          牛排.做 熟的程度:=七成熟
         
          Range("A1").Copy Range("A2")
      End Sub
       
      Sub ttt5()
      
        Sheet1.Move before:=Sheets("Sheet3")
        
      End Sub

    'VBA中的代码的基本结构与组成部分

    'VBA语句'

    一、宏程序语句

    '运行后可以完成一个功能

    Sub test()  '开始语句
      
      Range("a1") = 100
    
    End Sub   '结束语句

    二、函数程序语句

    '运行后可以返回一个值

    Function shcount()
    
      shcount = Sheets.Count
      
    End Function

    三、在程序中应用的语句

      Sub test2()
        
        Call test
        
      End Sub
    
     Sub test3()
     
       For x = 1 To 100   'for next 循环语句
          Cells(x, 1) = x
       Next x
     
     End Sub
     

    if判断语句

    Sub 判断1() '单条件判断
      If Range("a1").Value > 0 Then
         Range("b1") = "正数"
      Else
         Range("b1") = "负数或0"
      End If
    End Sub
    
    Sub 判断2() '多条件判断
      If Range("a1").Value > 0 Then
         Range("b1") = "正数"
      ElseIf Range("a1") = 0 Then
         Range("b1") = "等于0"
      ElseIf Range("B1") <= 0 Then
         Range("b1") = "负数"
      End If
    End Sub
    
    Sub 多条件判断2()
     If Range("a1") <> "" And Range("a2") <> "" Then
       Range("a3") = Range("a1") * Range("a2")
     End If
    End Sub

    IIF判断

    Sub 判断4()
      Range("a3") = IIf(Range("a1") <= 0, "负数或零", "负数")
    End Sub

    select 判断

    Sub 判断1() '单条件判断
      Select Case Range("a1").Value
      Case Is > 0
         Range("b1") = "正数"
      Case Else
         Range("b1") = "负数或0"
      End Select
    End Sub
    
    Sub 判断2() '多条件判断
      Select Case Range("a1").Value
      Case Is > 0
         Range("b1") = "正数"
      Case Is = 0
         Range("b1") = "0"
      Case Else
         Range("b1") = "负数"
      End Select
    End Sub
    
    Sub 判断3()
     If Range("a3") < "G" Then
       MsgBox "A-G"
     End If
    End Sub

    判断范围

    Sub if区间判断()
    If Range("a2") <= 1000 Then
      Range("b2") = 0.01
    ElseIf Range("a2") <= 3000 Then
      Range("b2") = 0.03
    ElseIf Range("a2") > 3000 Then
      Range("b2") = 0.05
    End If
    End Sub
    
    Sub select区间判断()
     Select Case Range("a2").Value
     Case 0 To 1000
       Range("b2") = 0.01
     Case 1001 To 3000
       Range("b2") = 0.03
     Case Is > 3000
       Range("b2") = 0.05
     End Select
    End Sub

    循环

    for 循环

    Sub t2()
    Dim x As Integer
     For x = 10000 To 2 Step -3
      Range("d" & x) = Range("b" & x) * Range("c" & x)
     Next x
    End Sub

    for each 循环

    Sub t3()
    Dim rg As Range
     For Each rg In Range("d2:d18")
      rg = rg.Offset(0, -1) * rg.Offset(0, -2)
     Next rg
    End Sub

    Do循环

    Sub t4()
    Dim x As Integer
     x = 1
     Do
       x = x + 1
       Cells(x, 4) = Cells(x, 2) * Cells(x, 3)
     Loop Until x = 18
    End Sub

    Do while

    Sub t5()
     x = 1
     Do While x < 18
       x = x + 1
       Cells(x, 4) = Cells(x, 2) * Cells(x, 3)
     Loop
    End Sub

    循环 案例

    Sub s1()
     Dim rg As Range
     For Each rg In Range("a1:b7,d5:e9")
       If rg = "" Then
         rg = 0
       End If
      Next rg
    End Sub
    
    Sub s2()
     Dim x As Integer
     Do
       x = x + 1
       If Cells(x + 1, 1) <> Cells(x, 1) + 1 Then
          Cells(x, 2) = "断点"
          Exit Do
       End If
     Loop Until x = 14
    End Sub

     

  • 相关阅读:
    网页设计的12种颜色
    深入理解编辑过程
    数据压缩
    <Mastering KVM Virtualization>:第四章 使用libvirt创建你的第一台虚拟机
    <Mastering KVM Virtualization>:第三章 搭建独立的KVM虚拟化
    <Mastering KVM Virtualization>:第二章 KVM内部原理
    <Mastering KVM Virtualization>:第一章 了解Linux虚拟化
    本地设置
    Spring Data JPA之删除和修改
    在Mac Chrome上关闭跨域限制--disable-web-security
  • 原文地址:https://www.cnblogs.com/heshun/p/12354691.html
Copyright © 2011-2022 走看看