zoukankan      html  css  js  c++  java
  • Excel VBA入门的基础语句

    选择当前活动的工作簿:
    ThisWorkbook.Activate
    如果选择其他工作簿,注意该工作簿一定是打开的,并且不要忘记加上后缀“.xls” ,例如:
    Windows("Totol.xls").Activate
    选择一个工作表:
    Sheets("Balance").Activate.
    选择单元格:
    Range("A1").Select
    选择连续的单元格:
    Range("A1:G8").Select
    选择不连续的单元格:
    Range("A1,B6,D9").Select
    Range("A1,B6:B10,D9").Select
    单元格间移动:
    ActiveCell.Offset(13, 14).Select
    Selection.Offset(-3, -4).Select
    Range("G8").Offset(-3, -4).Select
    注意:你可以定义一变量,并且用offset来实现,例如:
    varFreightRowsCount = Range("A1").CurrentRegion.Rows.Count
    ActiveCell.Offset(varFreightRowsCount, 0).Select
    选择整个工作表:
    Cells.Select
    选择当前单元格所在的区域(遇到空行/空列即止):
    Range("A1").CurrentRegion.Select
    选择行或列:
    Rows("1").Select
    Columns("A").Select
    或者:
    ActiveCell.EntireRow.Select
    ActiveCell.EntireColumn.Select
    选择相邻的多行/多列:
    Columns("A:C").Select
    Rows("1:5").Select
    选择不相邻的多行/多列:
    注意:和选择相邻的多行/多列不同,使用"Range"而不是"Columns/Rows":
    Range("A:A, C:C, E:F").Select
    Range("1:1,5:6,9:9").Select
    选择当前活动单元格向下至最后一个非空单元格:
    Range("A1", Range("A1").End(xlDown)).Select
    Range(ActiveCell, ActiveCell.End(xlDown)).Select
    选择当前活动单元格向上至第一个非空单元格:
    Range("A32", Range("A32").End(xlUp)).Select
    Range(ActiveCell, ActiveCell.End(xlUp)).Select
    选择当前活动单元格向右至第一个非空单元格。
    注意:是 "xlTORight"而不是 "xlRight"
    Range("A1", Range("A1").End(xltoRight)).Select
    Range(ActiveCell, ActiveCell.End(xltoLeft)).Select
    选择当前活动单元格向右至第10个单元格。
    Range("A2", Range("A2").Offset(0, 10)).Select
    Range(ActiveCell, ActiveCell.Offset(0, 10)).Select
    选择当前活动单元格向左至第10个单元格。
    Range("A20", Range("A20").Offset(0, -10)).Select
    Range(ActiveCell, ActiveCell.Offset(0, -10)).Select
    选择当前活动单元格向下至第10个单元格。
    Range("a2", Range("a2").Offset(10, 0)).Select
    Range(ActiveCell, ActiveCell.Offset(10, 0)).Select
    选择当前活动单元格向上至第10个单元格。
    Range("A1").End(xlDown).Offset(1, 0).Select
    选择该行中第一个空单元格:
    Range("A1").End(xltoRight).Offset(0,1).Select
    改变区域的大小(由 A1:B5 变为 A1:D10):注意:改区域并不是向外扩张,而是重新定义了。即“Selection.Resize(10, 4).Select而不是Selection.Resize(5, 2).Select

    Excel的宏不能记录移至当前行的第一个单元格的动作(即你按下“Home”键的动作),下面的语句则可以做到:
    ActiveCell.Offset(0, -ActiveCell.Column + 1).Select
    移至当前列的第一个单元格:
    ActiveCell.Offset( -ActiveCell.Row + 1,0).Select
    关于If..Then...EndIf
    如果只有一个条件及一个动作,你可以用以下语句:
    If Selection.Value > 10 Then
    Selection.Offset(1,0) = 100
    End If
    或者更简单的:
    If Selection.Value > 10 Then Selection.Offset(1,0) = 100
    如果有两个条件及两个动作,你可以用下面的语句
    If Selection.Value > 10 Then
    If Selection.Value = 12 Then
    Selection.Offset(1,0) = 100
    End If
    Selection.Offset(1,0) = 20
    End If
    关于If..Then...And...EndIf
    当有双重条件和一个动作时,你可以用下面的语句:
    If Selection.Value = 10 And Selection.Offset(0,1).Value = 20 Then
    Selection.Offset(1,0) = 100
    End If
    关于If..Then...Or...EndIf
    当有双重条件和一个动作时,你可以用下面的语句:
    If Selection.Value = 10 Or Selection.Offset(0,1).Value = 20 Then
    Selection.Offset(1,0) = 100
    End If
    关于If..Then...Else...EndIf
    当只有一个条件和两个动作时,你可以用下面的语句:
    If Selection.Value > 10 Then
    Selection.Offset(1,0) = 100
    Else
    Selection.Offset(1,0) = 0
    End If
    关于If..Then..ElseIf...EndIf
    当有不止一个条件,且每个条件都跟随不同的动作时,你可以用下面的语句:
    If Selection.Value = 1 Then
    Selection.Offset(1, 0) = 10
    ElseIf Selection.Value = 2 Then
    Selection.Offset(1, 0) = 20
    ElseIf Selection.Value = 3 Then
    Selection.Offset(1, 0) = 30
    ElseIf Selection.Value = 4 Then
    Selection.Offset(1, 0) = 40
    ElseIf Selection.Value = 5 Then
    Selection.Offset(1, 0) = 50
    End If
    关于Select Case
    当你不得不测试很多条件,你可以用Select Case 语句来代替If Then..ElseIf 。语法如下:
    Sub test()
    Select Case Selection.Value
    Case Is >= 85
    Selection.Offset(0, 1) = "A"
    Case Is >= 75
    Selection.Offset(0, 1) = "B"
    Case Is >= 65
    Selection.Offset(0, 1) = "C"
    Case Is >= 50
    Selection.Offset(0, 1) = "D"
    Case Else
    Selection.Offset(0, 1) = "F"
    End Select
    End Sub
    这段语句的意思就是:如果所选单元格的值大于85时,则其右边那个单元格的值为“A”…… 所选单元格的值小于50时,其右边那个单元格的值为“F”
    这里有一些关于VBA函数 LCase, Now(), UCase 的例子:
    注意:很多EXCEL函数都可以以下面的形式用在VBA中:
    varAnswer = Application.WorksheetFunction.Sum(Range("A1:A32"))
    或者
    varAnswer = Application.Sum(Range("A1:A32"))
    LCase
    当对输入的字符做判断时,我们无法知道用户输入的字符是大写还是小写,用LCase函数可以将其转化为小写:
    If LCase(Selection.value)= "toto" then...
    or
    Select Case LCase(Selection.value)
    or
    DO WHILE LCase(Selection.value)<>"toto"
    NOW()
    NOW() 既是Excel 函数也是VBA 函数。
    通过下面的语句,在打开工作簿时,单元格 "A1"就会显示为当前时间:
    Range("A1").Formula = "=Now()"
    下面的语句则在执行后赋予单元格“A1”当前时间,该时间不会改变除非你再次执行语句。并且你每次打开工作簿后,单元格“A1”的值不会改变。
    Range("A1").Value = Now()
    UCase
    当对输入的字符做判断时,我们无法知道用户输入的字符是大写还是小写,用LCase函数可以将其转化为大写:
    If UCase(Selection.value)= "TOTO" then...
    or
    Select Case UCase(Selection.value)
    or
    DO WHILE UCase(Selection.value)<>"TOTO"

  • 相关阅读:
    关于浏览器的内核 版本 发展 详解
    js判断浏览器内核 及ie的版本问题
    插入flash代码
    大前端学习笔记【七】关于CSS再次整理
    其实,程序员没有我想象得那么简单(算是2016的简单总结吧...)
    大前端学习笔记整理【七】HTTP协议以及http与https的区别
    大前端学习笔记整理【六】this关键字详解
    大前端学习笔记整理【五】关于JavaScript中的关键字——this
    大前端学习笔记整理【五】rem与px换算的计算方式
    大前端学习笔记整理【四】LESS基础
  • 原文地址:https://www.cnblogs.com/top5/p/1591912.html
Copyright © 2011-2022 走看看