我使用的office版本为microsoft office 365。

首先需要在office软件里启用宏功能。

依次:选项——>信任中心——>信任中心设置——>宏设置——>启用VBA宏

完成以上步骤,点击确定过后,退出选项设置,就能在office软件里使用VBA宏了。

基本使用语法

  1. 每个vba程序都要包裹在“头”和“尾”之间,头是

    Sub <你的函数名称>
    
    End Sub
    
    1. 选中表格

      Sheets("Sheet1").Select
      
    2. 选中行、列、单元格

      '选中行
      Rows("A:A").Select
      Columns("A:A").Select
      '选中单元格
      Range("A1").Select
      '表示从这个单元格到另一个单元格之间的区域
      '选中行5列1至行12列2这片区域
      Range(Cells(5, 1), Cells(12, 2)).Select
      
    3. 执行复制、粘贴动作

      '复制,在有选中动作之后可执行
      '粘贴,在选中的区域内进行
      ActiveSheet.Paste
      
    4. 把单元格内的内容赋值给数组,能有效地提高运行速度

      'arr1、arr2等都被赋值为数组
      Dim arr As Variant
      arr = [A1:A4]
      '把数组内的内容赋格给单元格
      Range("B1:B3") = arr '把所有值都付给选中的单元格
      Range("B1:B3") = arr(2,1) ’把其中一个值赋值给单元格
      
    5. 变量

      比如,我们可以把当前选中单元格的行号和列好存储为一个变量,然后在后续的代码中调用。

      RowNum = Selection.Row
      ColNum = Selection.Column
      
    6. FOR循环

      '执行一百次操作,把数组中的值粘贴到单元格中
      For i = 1 To 100 Step 1
      Range(Cells(RowNum + 4 * ( i - 1 ) , Cells(RowNum + 4 * i, 2)) = arr
      

      执行重复的复制粘贴工作

      有了以上的基本语法,基本上就能执行很多复制粘贴工作了。

      Sub 宏1()
          Dim arr As Variant
          arr = [A1:A4]
          Range(Cells(1, 2), Cells(4, 2)) = arr
          RowsNum = Selection.Row
          For i = 1 To 100 Step 1
              Range(Cells((RowsNum + 4 * (i - 1)), 2), Cells((4 * i), 2)) = arr
      End Sub
      				
      关于VBA Application.OnTime用法 application.ontime |举报 |字号 订阅 Application.OnTime可实现定时执行vba程序。在vb.net中可定时执行windows程序。 下面介绍定时执行vba程序过程: 1.Application.OnTime参数 Application.OnTime(EarliestTime,Procedure as String,[LatestTime],[Schedule]) EarliestTime调用程序的时间 Procedure调用程序的程序名,类型String LatestTime程序执行的结束时间,可选,默认不停调用 Schedule默认True:预定新的调用过程,False非预定调用新的过程 2.举例 Sub fslk() '本程序在每天的12点运行yourproc过程" Application.OnTime _ EarliestTime:=TimeValue("12:00:00"), _ Procedure:="YourProc" End Sub '被调用程序 Sub yourpc() Cells.(1, 2).Value = 4423 End Sub 3.循环调用程序自身,并设置调用时间举例 Option Explicit '公共变量说明 Dim endtime As String Sub oneminute() '主程序 endtime = Now + TimeValue("00:01:00") Call updateself End Sub Sub updateself() '被调用程序 Sheet1.Cells(4, 3).Value = Format(Now(), "hh:mm:ss") Application.OnTime Now + TimeValue("00:00:01"), "updateself", endtime, True End Sub 此例子在单元格C4读秒持续显示,显示时间长度1分钟 http://wenku.baidu.com/link?url=vgi6RL7p_2TqF7B-okY4Z-6glN-wjRcMw9UzBjf7yZrLLPztBNAdllM5u__bwkKxgyGdELCy1Lsz7PVYJxBkEPybO64LFAKxMtn9JeKoUTG