EXCEL中R1C1样式引用
主要引用http://club.excelhome.net/thread-759847-1-1.html
1 Sub chengji() 2 ' 3 ' 宏1 宏 4 ' 5 Dim Finalrow As Integer 6 Finalrow = Cells(Rows.Count, 2) 'Rows.Count=1048576,就是本工作表最后一行的行数标,2表示第2列 7 Finalrow = Cells(Rows.Count, 2).End(xlUp) '.End(Direction)属性表示想向那儿移动,等同于ctrl+方向键,自己可以试试,xlUp表示上移 8 9 Finalrow = Cells(Rows.Count, 2).End(xlUp).Row '求第二列数据最后一行非空单元格所在行的行标 10 Range("c2").Formula = "=a2*b2" '给c2单元格赋值公式 11 Range("C2").Copy Destination:=Range("C2:C" & Finalrow) '先写操作,对C2进行copy,目的地是后面跟一个范围 12 13 Range("B4").End(xlUp).Select '光标移动到B4的最上头 14 Range("B4").End(xlToRight).Select 15 Range("B4", Range("B4").End(xlToRight)).Select 'B4至B4右边所有的非空单元格被选中 16 End Sub
4,怎么引用R1C1样式
R1C1样式采用R来表示行,C来表示列
4.1 样式的相对引用
对于列正数表示向右移指定数量的列,负数反之。
对于行正数表示向下移指定数量的行,负数反之。
如果省略掉R或C的方括号,表示和引用单元格在同行或同列。
4.2 样式的绝对因用
在A1样式中使用绝对引用要在行号或列号字母前使用$。但在R1C1样式中只需省略方括号就行了,是不是很简单!!!!!!!!
1 Sub huizong() 2 ' 3 ' 宏3 宏 4 ' 5 Dim Finalrow As Integer 6 Finalrow = Cells(Rows.Count, 2).End(xlUp).Row + 1 '第2列最后一个非空单元格行标再加1 7 8 Cells(Finalrow, 1).Value = "汇总" '给单元格赋值 9 10 Cells(Finalrow, 2).Resize(1, 3).FormulaR1C1 = "=SUM(R2C:R[-1]C)" '给单元格赋公式,加[]表示相对引用,省略的表示在本行或本列 11 12 End Sub
1 Sub Multiplicationtable() 2 Range("b1:m1").Value = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) 'Array()函数可以生成一个行向量,也就是一个一维数组。“=”是把这个数组赋值给一个区域 3 Range("b1:m1").Font.Bold = True '格式为粗体 4 Range("b1:m1").Copy '选定区域并复制,相当于ctrl+c 5 Range("a2:a13").PasteSpecial Transpose:=True '相当于特殊粘贴,转置。把剪切板里的东西转置粘贴给等号前面的区域。 6 Range("b2:m13").FormulaR1C1 = "=rc1*r1c" '正方形区域内每个单元格都填充为R1C1样式公式"=rc1*r1c",r后省略数字表单元格所在行,r两侧省略中括号表示绝对引用 7 'rc1*r1c表示单元格所在行第1列 * 第1行本单元格所在列 8 Cells.EntireColumn.AutoFit 9 'ActiveCell.EntireColumn.Cells(1, 1).Value = 5 'ActiveCell.EntireColumn返回一个 Range 对象,该对象表示包含指定区域的整列(或多列)。只读 10 End Sub