vba基础知识

 

不会写就录制宏然后看代码


1.注释使用单引号“'”

2.f8是逐句执行

3.选中函数按 f1 是帮助,函数解释

4.代码换行(下划线+空格+换行)

5.excel中的对象指的是:工作簿,工作表,单元格,图表,透视表等等 集合也是一种特殊的对象。cells(第几行,第几列)

6.集合没有指定哪个对象。只是一种统称。如:workbooks,worksheets,cells等等

7.测试打印:Debug.Print Sheet1.Name

8.Sheet1.Range("e3") = "fddsf"
  Sheet1.Name = "Lixi"

9.Sub 选择方法()
Range("a1:a10").Select
'注:如果单元格区域前没有写工作表名,则默认为活动工作表
End Sub

Sub 复制方法()
Sheet1.Range("a1:a10") = 1   '将1写入表一的a1:a10区域
Sheet1.Range("a1:a10").Copy Sheet2.Range("a1")   '将表一的a1:a10区域的值复制到表2的a1
End Sub


Sub 删除方法()
Sheets(3).Delete
End Sub

10.数组下标从1开始

11.本地窗口是代码调试窗口,“立即窗口”是日志打印结果窗口

12.变量定义格式: dim 变量 as 变量类型,可不写变量类型

13.currency货币类型 integer整型
VBA中的常见数据类型:
类型          注释        简写    占用内存
Integer      整型         %     2Byte
Single        单精度      !       4Byte
Double        双精度      #      8Byte
String        字符型      $      定长或变长( 变长字符串最多可包含大约 20 亿 ( 2^31)个字符。 定长字符串可包含 1 到大约 64K ( 2^16 ) 个字符。)
Currency      货币型      @     8Byte
Range         对象
简写声明:Dim d%, e!, f$

14.If a = b Then MsgBox "相等" 或者:
  If a = b Then
        MsgBox "相等"
    End If
 
 If Sheet1.Range("b1") >= 90 Then
        Sheet1.Range("b2") = "优秀"
    ElseIf Sheet1.Range("b1") >= 80 Then
        Sheet1.Range("b2") = "良好"
    ElseIf Sheet1.Range("b1") >= 70 Then
        Sheet1.Range("b2") = "中等"
    Else
        Sheet1.Range("b2") = "较差"
    End If

15.单行条件判断: if 条件判断 then 条件成立 else 条件不成立 : if 2>1 then Msgbox "yes" else msgbox "no"

16.'Select Case 语句 根据表达式的值,来决定执行几组语句中的其中之一。相当于switch

Sub select单条件判断()
i = 1
Select Case i
Case Is > 0
    MsgBox "正数"
Case Else
    MsgBox "负数"
End Select
End Sub

Sub select多条件判断()
Select Case Sheet1.[d1].Value
Case "A"
Sheet1.[a3] = "A型血的你,是个不怎么样的人!"
Case "B"
Sheet1.[a3] = "B型血的你,也是个不怎么样的人~"
Case "AB"
Sheet1.[a3] = "AB型血的你,是个更不怎么样的人~"
Case "O"
Sheet1.[a3] = "O型血的你,还是不错的!"
Case Else
Sheet1.[a3] = "没有这种型血,看来你 是个最不怎么样的人~!"
End Select
End Sub

17.do...loop 循环语句
Sub 基本示例()
Dim a%
Do
a = a + 1
If a > 10 Then
MsgBox a & "终于大于10"
Exit Do
End If
Loop
End Sub

18.do while 循环语句:

Sub 循环语句while()
Dim rs As Integer
rs = 2
Do While Cells(rs, 2) <> ""   '当单元格不等于空时,则循环
    If Cells(rs, 2) >= 90 Then Cells(rs, 3) = "√"
    rs = rs + 1
Loop '循环
End Sub

19.'do until...loop
Sub 循环语句DOLOOP2()
Dim rs As Integer
rs = 2
Do Until Cells(rs, 2) = "" '直到单元格为空为止,才结束
    If Cells(rs, 2) >= 90 Then Cells(rs, 3) = "√"
    rs = rs + 1
Loop '循环
End Sub

'实例-隔行填色
Sub 隔行填色()
    Dim rs As Integer
    rs = 2
    Do Until Sheet2.Range("a" & rs) = ""
    Sheet2.Range("a" & rs & ":g" & rs).Interior.ColorIndex = 7
    rs = rs + 2
    Loop
End Sub

20.'while与until不但可以放在DO后面,也可以放在LOOP后面
'事实上有时在循环的最后一行进行判断,更具有意义
Sub doloop的最后判断循环()
Dim pss$, i!
Do
i = i + 1
If i > 3 Then Exit Do
    pss = InputBox("请输入密码")
Loop While pss = "123"
End Sub

21. '当需要处理集合成员时,一般会用for each..next,实际上就是处理对象 
Sub foreachnext循环1()
Dim rng As Range, n!
For Each rng In Sheet1.Range("a2:a10") '取a2:a10中的每个单元格
   If rng = "A1" Then rng.Interior.ColorIndex = 3
Next
End Sub

22.for循环
Sub 九九乘法表制作()
Dim a!, b!
For a = 1 To 9
    For b = 1 To 9
        If b > a Then
            Sheet2.Cells(a, b) = ""
         Else
            Sheet2.Cells(a, b) = a & "×" & b & "=" & a * b
        End If
    Next
Next
End Sub


1.'exit是退出当前语句
'1.Exit Do
'2.Exit For
'3.Exit Function
'4.Exit Sub
Sub exitfor退出()
Dim i!
For i = 2 To 7
    If Sheet1.Cells(i, 1) = "田七" Then
       Exit For
    End If
Next i
MsgBox "第一个(田七)的位置在" & i & "行"
End Sub

'end结束一个过程或块。
'End
'End Function
'End If
'End Select
'End Sub
Sub aa()
i = 1
End
Exit Sub
j = 1
End Sub

2.标识: 标识符:例如:line:,一般用于goto goto:line

3.变量可不指定任何数据类型,会默认认为是变体变量

4.超过8:00在右侧单元格输入“迟到”,下面的1/3认为就是8:00,
'go to...return
Sub gotoreturn()
Dim i!
For i = 2 To 10
    If Sheet1.Range("a" & i) > 1 / 3 Then GoSub 100
Next i
Exit Sub
100:
        Sheet1.Range("b" & i) = "迟到"
 Return
End Sub

5.return语句就是从哪里来回哪里去

6.当错误出现的时候干嘛,如下:
Sub onerrorresume()
Dim i!
On Error Resume Next '当错误的时候继续执行下去
For i = 2 To 8
    Cells(i, 4) = Cells(i, 3) + Cells(i, 2)
Next i
End Sub

'On Error GoTo当错误的时候去哪儿?
Sub onerrorgoto()
On Error GoTo 100
For i = 2 To 8
    k = Sheet1.Cells(i, 2) + Sheet1.Cells(i, 3)
Next i
100:
   MsgBox "对不起,错误发生在第" & i & "行"

End Sub

7.Range("a1").parent.name 意思是说:a1单元格上一级的名字,其实指的是工作表的名称

8.Range("c"& i)=range("a",& i)+range("b" & i) 等于 sheet1.cell(1,3)="=a1+b1" 也等于 sheet1.cells(i,4)="=a" & i & "+b" & 
i

9.FormulaArray 代表支持数组公式:
Sub 数组公式()
Range("e1:e10").FormulaArray = "=a1:a10+b1:b10"
End Sub

10.调用内置函数:
Sub 带工作表函数的计算()
Dim i As Integer
For i = 1 To 10
    Sheet1.Cells(i, 4) = "=sum(a" & i & ":b" & i & ")"
Next i
End Sub

11.公式带引用的方法是 多添加一个引号“"”
Sub 公式带引号的计算()
Cells(12, 1) = "=COUNTIF(A1:A10,"">9"")"
Cells(12, 2) = "=sum(INDIRECT(""a1:a10""))"
End Sub

12.定义: 运算符是代表VBA某种运算功能的符号?
 
'1)赋值运算符 :=
 
'2)数学运算符: &(字符连接符)、+(加)、-(减)、Mod(取余)、\(整除)、*(乘)、/(除)、-(负号)、^(指数)
 
'3)逻辑运算符:Not(非)、And(与)、Or(或)、Xor(异或)、Eqv(相等)、Imp(隐含)
 
'4)关系运算符: = (相同)、<>(不等)、>(大于)、<(小于)、>=(不小于)、<=(不大于)、Like
 
 Sub mods()
 
a = 4 ^ 2
 End Sub

 
'like用来比较两个字符串。可以理解成A 看起来像 B :a like b
Sub likess()
a = 1 Like "[!2]"
End Sub

13.通配符
'  ?任何单一字符
'  * 零个或多个字符。
'  # 任何一个数字 (0–9)。
’"[a-z]" a到z
'  [charlist] charlist.中的任何单一字符?
'  [!charlist] 不在 charlist 中的任何单一字符。

逻辑值    逻辑值    AND    OR    XOR    EQV    IMP
TRUE    FALSE    FALSE    TRUE    TRUE    FALSE    FALSE
FALSE    TRUE    FALSE    TRUE    TRUE    FALSE    TRUE
TRUE    TRUE    TRUE    TRUE    FALSE    TRUE    TRUE
FALSE    FALSE    FALSE    FALSE    FALSE    TRUE    TRUE

14.视觉错误 眼睛疲劳

15.工作簿就是excel的一个文件,这个文件由多个工作表组成

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值