‘从活动单元格向上12行到向上1行的总和
ActiveCell.FormulaR1C1=\"SUM(R[-12])C:R[-1]C\"
‘引用第C-D列和第F-G列
Range(“B2:D6”)
‘引用B2-D6的单元格 同Range(“B2”,”D6”) ,Rangge(Cells(2,2),Cells(6,4))
‘引用第2行3列
Cells(2,3) 或Cells(2,”C”)
ActiveCell.Resize(4,4) ‘自当前单元格开始创建一个4行4列的区域
Range(“B2”).Resize(5,3) ‘从B2开始扩展的区域为5行3列的区域
‘不连续单元格的引用
Range(“A1:B2,C4,D6:F7”) 引用从A1-B2、C4和D6-F7的区域
‘设置多个不连续区域
Sub Union
Dim bigRange as Range
WorkSheets(“Sheet1”)。Activate
Set bigRange=Application.Union(Range(“A1:B2”),Range(“C4”),Range(“D6:F7”))
bigRange.Select
End Sub
‘新建名称
为单元格区域添加名称”客户”
Sub AddName2()
ActiveSheet。Names.Add Selections.Address()
End Sub
‘直接为选定的区域命名
Selection。Name=”品名”
Name:=”客户&
\
‘新建名称
Sub AddName1()
ActiveSheet。Names.Add Name:=”品名”,RefersTo:=”=”=$B$2:$B$80
End Sub
‘删除命名
Sub DeleteRangeNames()
Dim rName as Name
For Each rName In ActiveWorkbook。 rName。Delete
Next rName
End Sub
‘选取单个单元格
Range(“A1”)。Select
Names
Cells(1,1).Select
[A1]。Select
‘选取A1-A10,C1—C10的不连续区域
Range(“A1:A10,C1:C10”)。Select
Union(Range(“A1:A10”),Range(“C1:C10”)。Select
‘选取当前区域和使用的区域
CurrentRegion.Selection
UsedRange。Selection
‘选取A1—B10的单元格区域
Range(“A1:B10\")。Select
Range(Cells(1,1),Cells(10,2))。Select
‘命名区域的选择
Range(“品名”).Select
‘选取整个工作表
Cells.Select或Columns.Select或Rows。Select
‘使用常量给单元格赋值
Sub ResetValuesToZero2()
Dim n as Range
For Each n In Worksheets(“Sheet1”) If n.Value<>0 Then
n。Value=0
End If
Next n
End Sub
‘给一个区域赋值
Sub setZero()
。Range(“WorkArea1”)
Sheet1。Range(“A1:D5”)=0
End Sub
‘把变量赋值给单元格
Sub test()
For i=1 to 10
Range(“A” & i)=i
Next i
End Sub
‘使用Chr函数转换数值变量为字符
Sub Test2()
Dim a as String
Dim I as Integer
For i=65 to 70
A=Chr(i)
Range(a & 1)=i
Next i
End Sub
‘把单元格的值赋值给数组
Sub RangeToArray()
Dim myArray(3) as integer
Dim I as integer
For i=1 to 3
myArray(i)=Cells(1,i)
Next i
End Sub
‘把单元格中一行单元格的值赋给数组
Sub RangeToArray0()
Dim I as integer
Dim varArray as Variant
varArray=Sheet1。Range(“A1:C1”)。Value
For i=1 to 3
MsgBox varArray(1,i)
Next i
End Sub
‘把一个单元格矩形区域的值赋给数组
Sub RangeToArray1()
Dim varArray as Variant
Dim r%
Dim c%
varArray=Sheet1。Range(“A1:C3”)。Value
‘按行循环数组
For r=1 to UBound(varArray,1)
For c=1 to UBound(varArray,2)
Debug。Print varArray(r,c)
Next c
Next r
End Sub
‘把数组的值赋给单元格
Sub ArrayToRange2()
Dim aData(2,2) as Variant
Dim RowCnt As integer,ColCnt as integer
aData(0,0)=1
aData(0,1)=2
aData(0,2)=3
aData(1,0)=4
aData(1,1)=5
aData(1,2)=6
aData(2,0=7
aData(2,1)8
aData(2,2)9
End Sub
‘把公式传给数组
Sub RangeToArray4()
Dim arr As Variant
Arr=[a6:c10].Formula
[e6:g10=arr
End Sub
‘单元格间的赋值
Sub cells()
Dim I as Integer
For i=1 to 5
Cells(i+5,7)=Cells(I,1)
Next i
End Sub
‘把一行单元格赋值给一列单元格
Sub Range2()
Dim I as Integer
Dim j as integer
For i=1 to 5
J=j+1
Cells(I,10)=cells(2,j)
Next i
End Sub
‘使用数组转置实现行、列单元格之间的数据传递
Sub range3()
Dim varArray as Varaint
varArray=Application.Transpose([A1:E1])
[G1:G5=varArray
End Sub
‘按地址拆分工作表()
Sub 按地址拆分工作表()
On Error Resume Next
Dim n As Integer, K As Integer
Dim j As Long
n = 2
'获取A列从下数不为空的单元格行号
j = 10
For K = 2 To j
Do Until Left(Sheet2.Cells(K, 2), 3) 〈> Left(Sheet2.Cells(K + 1, 2), ’k中保存省份名称相同的地址数目
K = K + 1
Loop
’判断第2列K行的地区省份与第2列K+1行的地区省份是否相同
If Left(Sheet2.Cells(K, 2), 3) <〉 Left(Sheet2.Cells(K + 1, 2), 3) Then
3)
’如果不同复制Sheet2中的指定单元格
Sheet2.Activate
Range(Cells(n, 1), Cells(K, 2))。Copy
’添加工作表
Sheets.Add
’为工作表命名,其名称取自Sheet2工作表中第二列的前三个汉字
ActiveSheet。Name = Left(Sheet2.Cells(K, 2), 3)
’把复制的内容粘贴到新建的工作表中
Range(”A2”)。Select
ActiveSheet.Paste
End If
n = K + 1
Next K
End Sub
因篇幅问题不能全部显示,请点此查看更多更全内容