首页 > 代码库 > VBA之行列的引用

VBA之行列的引用

‘行列引用
Sub 列引用()
Columns(1).Select
Columns("b").Select
Columns("c:e").Select
End Sub

Sub 行引用()
Rows(1).Select
Rows("2").Select
Rows("3:4").Select
End Sub

Sub range行列表式法()
Range("1:1").Select
Range("2:4").Select
Range("a:a").Select
Range("b:d").Select
End Sub
Sub 简写法()
[a:a].Select
[b:d].Select
[1:1].Select
[2:4].Select
End Sub

Sub 全选()
Rows.Select ‘选择所有行
Columns.Select ‘选择所有列
Cells.Select ‘选择所单元格
i = Rows.Count
j = Columns.Count
k = Cells.Count‘显示数据溢出
End Sub
Sub 动态引用使用区域() a = Application.CountA(Columns(1)) b = Application.CountA(Rows(1)) Range("a1", Cells(a, b)).Select End Sub

  

Row与Column属性(row是行,多用数字表示,column是列,多用字母表示)

‘-------------------------------------------------
‘Range.Row 属性
‘返回区域中第一个子区域的第一行(最左上角)的行号

‘Range.Column 属性
‘返回指定区域中第一块中的第一列的(最左上角)列号
‘-------------------------------------------------

Sub test()
i = Range("a3:b9").Range("a5").Row
j = Range("a3:b9").Row
i = Range("b3:d9").Range("a5").Column
j = Range("b3:d9").Column ‘j=2,因为B列是第二列
End Sub


Sub row应用()‘隔一行设置行的高度
For Each rw In Rows("1:13")
    If rw.Row Mod 2 = 0 Then
        rw.RowHeight = 5
    End If
Next rw
End Sub

  效果图:技术分享注意行号与行高

 

 

单元格的值和地址:

‘单元格的值表示方法
Sub 单元格值表示()
a = [a1].Value  ‘实际是什么,就是什么
b = [a1].Text    ‘看到是什么,就是什么(通过自定义格式做出来的值)
c = [a1] ‘不加默认为.Value,建议养成加上.Value的习惯
End Sub

‘注意:一个单元格可以省略value,多单元格区域不能省略
Sub 多区域赋值() ‘一块区域的值统一赋值给另一款区域
Range("e1:e4") = Range("d1:d4").Value
End Sub

‘单元格地址与引用
Sub 地址与引用()
Set rng = [b2:f2]
[a9] = rng.Address(1, 1)  ‘绝对引用
[b9] = rng.Address(0, 0)  ‘相对引用
[c9] = rng.Address(1, 0)   ‘混合引用
[d9] = rng.Address(0, 1)   ‘混合引用
‘结果分别如下:($表示绝对引用)
‘$A$1:$C$3   A1:C3   A$1:C$3 $A1:$C3
End Sub
‘总结:1代表固定,0代表不固定,默认是绝对引用

Sub 地址引用实例()
‘将表三成绩中为空的单元格标为未考
Dim rng As Range, rn$
On Error Resume Next
For Each rng In Sheet3.Range("b2:d10")
    If rng = "" Then rn = rn & rng.Address & ","
Next
Range(Left(rn, Len(rn) - 1)) = "未考"
End Sub

‘思考题:用上题的思路,将成绩中的"未考"去掉为空?

Sub Thinking()
On Error Resume Next
For Each rng In Sheet3.Range("b2:d10")
    If rng = "未考" Then rn = rn & rng.Address & ","
Next
Range(Left(rn, Len(rn) - 1)) = ""
End Sub

  Before:技术分享

  after:技术分享

  PS:数据不一致因为是随机生成的

 

VBA之行列的引用