《excel vba activecell 用法集锦》由会员分享,可在线阅读,更多相关《excel vba activecell 用法集锦(17页珍藏版)》请在金锄头文库上搜索。
1、Activecell 用法集锦,山野雪人(冯德平)收集整理说明:自从本人开辟了一个Excel 百问百答后,目前访问量接近三万,贴子已超过 1000 贴,并有 21 人收藏,很多网友纷纷要求我提供一些资料性的东西,为满足广大网友的要求,先将关于 ActiveCell 部分的内容整理如下,希望大家喜欢。一、相关解释和帮助Window.ActiveCell 属性 返回一个 Range 对象,它代表活动窗口(最上方的窗口)或指定窗口中的活动单元格。如果窗口中没有显示工作表,此属性无效。只读。语法表达式.ActiveCell表达式 一个代表 Window 对象的变量。说明如果不指定对象识别符,此属性返回
2、活动窗口中的活动单元格。请仔细区分活动单元格和选定区域。活动单元格为选定区域内部的一个单元格。而选定区域可以包含多个单元格,但只有一个单元格为活动单元格。下列表达式都是返回活动单元格,并且都是等效的。Visual Basic for Applications ActiveCellApplication.ActiveCellActiveWindow.ActiveCellApplication.ActiveWindow.ActiveCell 示例此示例在消息框中显示活动单元格的值。由于如果活动表不是工作表则 ActiveCell 属性无效,所以此示例使用 ActiveCell 属性之前先激活 Sh
3、eet1。Visual Basic for Applications Worksheets(Sheet1).ActivateMsgBox ActiveCell.Value 此示例更改活动单元格的字体格式设置。Visual Basic for Applications Worksheets(Sheet1).ActivateWith ActiveCell.Font.Bold = True.Italic = TrueEnd With 二、相关问答:1、activecell.row 是什么意思?sheets(记录).selectselection.end(xltoleft).selectrow_db=
4、activecell.row 这行,这是什么意思,定义了 row_db 等于的是什么?谢谢帮忙答:sheets(记录).select 选中记录工作表selection.end(xltoleft).select 相当于按下 Ctrl + 键,即选中当前选区最上面一行向左数第一个或最后一个非空单元格row_db=activecell.row 这里的 row_db 就是当前选中的单元格所在的行号,也就是在运行宏之前的选区的最上面一行的行号小 Fisher2、在 EXCEL 宏里面有段程序如下:ActiveCell.FormulaR1C1 请帮忙解释.答:当前活动单元格中的公式为.你自己录制一个宏,看
5、一下就知道了.录制一个输入公式的宏.smallcolour 3、我现在是基于这个做个循环的句子单元格 C1=A1+B1 Sub Macro1()Range(C1).SelectActiveCell.FormulaR1C1 = =RC-2+RC-1End Sub这个地方 RC-2+RC-1是绝对的行列位置,现在我需要写个循环,RC-2的 2 变成一个变量 i,怎么写呢?我把-2 换成 -&i&结果他变成了字符来处理了。谢谢指点了。答:Excel 有两种引用方式的,一种是 A1 引用,一种是 R1C1 引用你现在使用的是 R1C1 引用要改引用方式可以在 工具 选项 常规 中取消 R1C1 引用样
6、式看到你给我的留言了,但是还是不明白你的意思你是不是想在选中某个单元格的时候,引用附近的某个单元格呢?想把 2 换成 i 可以这样:ActiveCell.FormulaR1C1 = =RC- & i & +RC-1nxnd1986 三、实例收集Sub activeCell()If ActiveCell Is Nothing Then EndEnd SubSub offset()ActiveCell.Offset(RowOffset:=-2, ColumnOffset:=4).ActivateEnd SubSub MyMacro 将当前的单元格的文本前加上文字ActiveCell.Value =
7、 无效值: & ActiveCell.ValueEnd SubSub fomula()ActiveCell.Formula = =SUM($G$12:$G$22)End SubSub MyMacro +-*/及运算ActiveCell.Value = (ActiveCell.Value * 2) - 1End SubSub MyMacro() 移动单元格ActiveCell.Value = Top cellActiveCell.Offset(1, 0) = Bottom cellEnd SubSub MyMacro() 移动到新的单元格 Change the top cell.ActiveCe
8、ll.Value = Top cell Move down one cell.ActiveCell.Offset(1, 0).Select Now this changes the bottom cell.ActiveCell.Value = Bottom cellEnd SubSub selectRange()MsgBox ActiveCell.AddressEnd SubSub DownTen() 改变激活的单元格ActiveCell.Offset(10, 0).SelectEnd SubSub SelectUp()Range(ActiveCell, ActiveCell.End(xlUp
9、).SelectEnd SubSub SelectToRight()Range(ActiveCell, ActiveCell.End(xlToRight).SelectEnd SubSub SelectToLeft()Range(ActiveCell, ActiveCell.End(xlToLeft).SelectEnd SubSub SelectCurrentRegion() 选择激活的区域ActiveCell.CurrentRegion.SelectEnd SubSub SelectActiveArea() 选择激活的特定区域Range(Range(A1), ActiveCell.Spec
10、ialCells(xlLastCell).SelectEnd SubSub ActivateNextBlankDown()说明:假定 A1:A8 都有数据,A9 没有数据,如果点击 A1:A8的任何单元格,光标都会跳到第一个没有数据的那个单元格,即跳到 A9ActiveCell.Offset(1, 0).SelectDo While Not IsEmpty(ActiveCell)ActiveCell.Offset(1, 0).SelectLoopEnd SubSub 向右边的单元格交换数据()Dim temptemp = ActiveCell.ValueActiveCell.Value = A
11、ctiveCell.Offset(0, 1).ValueActiveCell.Offset(0, 1).Value = tempEnd SubSub SwapTextWithCellOnRight() 复制Dim CellContentCellContent = ActiveCell.Value ActiveCell.Offset(0, 1).Value = CellContentEnd SubSub MyMacro()If ActiveCell.Value 100 ThenActiveCell.Value = 100End IfEnd SubSub MyMacro() 使用 If 语句If
12、ActiveCell.Value 1000 ThenActiveCell.Offset(0, 1).Value = ActiveCell.Value * 0.05ElseIf ActiveCell.Value 500 ThenActiveCell.Offset(0, 1).Value = ActiveCell.Value * 0.025ElseActiveCell.Offset(0, 1).Value = 5End IfEnd SubSub FormatAllCellsInColumn()假定 A1:A8 都有数据,A9 没有数据,如果点击 A1,再运行该程序就可以看到效果Do Until A
13、ctiveCell.Value = ActiveCell.Rows.EntireRow.SelectSelection.Interior.ColorIndex = 35Selection.Interior.Pattern = xlSolidActiveCell.Offset(2, 0).SelectLoopEnd SubSub FixText() 将首字母换成大写ActiveCell.Value = Application.WorksheetFunction.Proper(asdf)End SubSub DoWhileDemo() do while.loop 的示例Do While Activ
14、eCell.value EmptyActiveCell.value = ActiveCell.value * 2ActiveCell.offset(1, 0).SelectLoopEnd SubSub DoLoopWhileDemo() do loop 示例DoActiveCell.value = ActiveCell.value * 2ActiveCell.offset(1, 0).SelectLoop While ActiveCell.value EmptyEnd SubSub SelectActiveColumn() 选择激活的单元格所在的列If IsEmpty(ActiveCell)
15、Then Exit SubOn Error Resume NextIf IsEmpty(ActiveCell.Offset(-1, 0) Then Set TopCell = ActiveCell Else Set TopCell = ActiveCell.End(xlUp)If IsEmpty(ActiveCell.Offset(1, 0) Then Set BottomCell = ActiveCell Else Set BottomCell = ActiveCell.End(xlDown)Range(TopCell, BottomCell).SelectEnd SubSub Select
16、ActiveRow() 选择激活的单元格所在的行If IsEmpty(ActiveCell) Then Exit SubOn Error Resume NextIf IsEmpty(ActiveCell.Offset(0, -1) Then Set LeftCell = ActiveCell Else Set LeftCell = ActiveCell.End(xlToLeft)If IsEmpty(ActiveCell.Offset(0, 1) Then Set RightCell = ActiveCell Else Set RightCell = ActiveCell.End(xlToRight)Rang