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

 

 

posted @ 2020-02-23 22:13  heshun  阅读(893)  评论(0编辑  收藏  举报