一、表格基本操作
1.单元格选取和赋值
Range(“A1”).Select ‘选取单元格,Range表示区域
ActiveCell.FormulateR1C1=”1” ‘对选中的单元格赋值(R1C1相对位置赋值,此处赋值
’按文本格式)ActiveCell 表示当前单元格
Cells(2,4)=3 ‘对D2赋值,此处赋值结果与“3”相同,均为常规格式
ActiveCell.FormulateR1C1=”R[-2]C+R[-1]C” ‘C表示同一列
2.工作表操作
Sheets.Add After:=ActiveSheet ‘Sheets为对象集合,此处向集合中增加新成员
Sheets("Sheet2").Select ‘选取工作表
Sheets("Sheet2").Name = "增加" ‘工作表命名
Sheets("Sheet1").Select
ActiveWindow.SelectedSheets.Delete ‘将当前显示的Sheet删除
Sheets("增加").Select
Sheets("增加").Copy After:=Sheets(1) ‘复制“增加”工作表并在其后创建
3.For循环
Fork = 1 To 5
Cells(k, k) = k * k
Next ‘运行结束后k为6
4.单元格上色
With Selection.Interior ‘With避免重复书写,Interior指示单元格内部
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535 ‘颜色代码
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Cells(1,3).Interior.Color=60000
5.复制
Rows("1:1").Select
Selection.Copy
Rows("3:3").Select
Selection.InsertShift:=xlDown ‘插入复制的单元格
‘使用相对引用时
ActiveCell.Rows("1:1").EntireRow.Select ‘选中相对于当前单元格的第一行
Application.CutCopyMode = False
Selection.Copy
ActiveCell.offset(2, 0).Rows("1:1").EntireRow.Select ‘offset选中当前单元格下两行位置
Selection.InsertShift:=xlDown
二、VBA编程
1. 变量声明(VBA不区分大小写)
Dim Sum As Long ‘声明变量时前加Dim,模块已声明Option Explicit时所有变量都需声明
ActiveCell.Value=Sum
ThisWorkbook.Worksheets(“Sheet1”).Range(“h2”)=Sum ‘严格指定单元格
2.Debug: 单步执行可进行Debug,鼠标hover于变量可以查看变量值
3.运算符:/求商 \整除 12 Mod 9 取模 =等于 <>不等于
a Is b 比较对象的引用变量(相同返回True)
a Like b 比较两字符串是否匹配(匹配返回True)
4.Range: Cells.ClearCotents ‘活动工作表上的所有单元格清除,不可Ctrl+Z恢复
Range(“A1:A10”)=100 ‘A1:A10全部赋值为100
Range("B1:B10") = "=RC[-1]+R[1]C[-1]" ‘相对赋值
5.For Each A In WorkSheets ‘WorkSheets为对象集合
……
Next ‘对象循环
6.If a=b Then ‘if判断需要加Then
……
EndIf
7.Set 对象变量赋值使用Set
e.g.Set rng=Thisworkbook,WorkSheets(“Sheet1”).Range(“a1:b2”)
8.Application.DisplayAlerts=False ‘去除删除等操作时的提示框
9.Rnd: (0,1)均匀分布随机数发生器
10.链接: ActiveSheet.Hyperlinks.AddAnchor:=Selection, Address:="", SubAddress:= _"Sheet2!A1",TextToDisplay:="Sheet2!A1"
‘链接的本质是链到单元格,Anchor为超链接入口,SubAddress为链接到的单元格
11.offset作为函数,返回一个range,描述相对于调用的单元格的位置
12.字符串拼接使用&
三、函数
1.Function name(x,y)创建函数,其他Sub可直接调用