首页 Excel VBA Activecell 用法集锦

Excel VBA Activecell 用法集锦

举报
开通vip

Excel VBA Activecell 用法集锦Activecell 用法集锦,山野雪人(冯德平)收集整理 说明:自从本人开辟了一个《Excel百问百答》后,目前访问量接近三万,贴子已超过1000贴,并有21人收藏,很多网友纷纷要求我提供一些资料性的东西,为满足广大网友的要求,先将关于ActiveCell部分的内容整理如下,希望大家喜欢。 一、相关解释和帮助 Window.ActiveCell 属性 返回一个 Range 对象,它代表活动窗口(最上方的窗口)或指定窗口中的活动单元格。如果窗口中没有显示工作表,此属性无效。只读。 语法 表达式.Act...

Excel VBA Activecell 用法集锦
Activecell 用法集锦,山野雪人(冯德平)收集整理 说明:自从本人开辟了一个《Excel百问百答》后,目前访问量接近三万,贴子已超过1000贴,并有21人收藏,很多网友纷纷要求我提供一些资料性的东西,为满足广大网友的要求,先将关于ActiveCell部分的内容整理如下,希望大家喜欢。 一、相关解释和帮助 Window.ActiveCell 属性 返回一个 Range 对象,它代表活动窗口(最上方的窗口)或指定窗口中的活动单元格。如果窗口中没有显示工作表,此属性无效。只读。 语法 表达式.ActiveCell 表达式一个代表 Window 对象的变量。 说明 如果不指定对象识别符,此属性返回活动窗口中的活动单元格。 请仔细区分活动单元格和选定区域。活动单元格为选定区域内部的一个单元格。而选定区域可以包含多个单元格,但只有一个单元格为活动单元格。 下列表达式都是返回活动单元格,并且都是等效的。 Visual Basic For Applications ActiveCell Application.ActiveCell ActiveWindow.ActiveCell Application.ActiveWindow.ActiveCell 示例 此示例在消息框中显示活动单元格的值。由于如果活动表不是工作表则 ActiveCell 属性无效,所以此示例使用 ActiveCell 属性之前先激活 Sheet1。 Visual Basic For Applications Worksheets("Sheet1").Activate MsgBox ActiveCell.Value 此示例更改活动单元格的字体格式设置。 Visual Basic For Applications Worksheets("Sheet1").Activate With ActiveCell.Font .Bold = True .Italic = True End With 二、相关问答: 1、activecell.row 是什么意思? sheets("记录").select selection.end(xltoleft).select row_db=activecell.row 这行,这是什么意思,定义了row_db等于的是什么? 谢谢帮忙 答: sheets("记录").select '选中"记录"工作表 selection.end(xltoleft).select '相当于按下Ctrl + ←键, 即选中当前选区最上面一行向左数第一个或最后一个非空单元格 row_db=activecell.row '这里的row_db就是当前选中的单元格所在的行号,也就是在运行宏之前的选区的最上面一行的行号小Fisher 2、 在Excel宏里面有段程序如下: ActiveCell.FormulaR1C1请帮忙解释. 答: 当前活动单元格中的公式为...... 你自己录制一个宏,看一下就知道了. 录制一个输入公式的宏. smallcolour 3、 我现在是基于这个做个循环的句子 单元格 C1=A1+B1 Sub Macro1() Range("C1").Select ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]" End Sub 这个地方RC[-2]+RC[-1]是绝对的行列位置,现在我需要写个循环,RC[-2]的2变成一个变量i,怎么写呢?我把-2换成 -&i&结果他变成了字符来处理了。 谢谢指点了。 答: Excel有两种引用方式的,一种是A1引用,一种是R1C1引用~你现在使用的是R1C1引用~要改引用方式可以在工具选项常规中取消R1C1引用样式~看到你给我的留言了,但是还是不明白你的意思~你是不是想在选中某个单元格的时候,引用附近的某个单元格呢?想把2换成i可以这样: ActiveCell.FormulaR1C1 = "=RC[-" & i & "]+RC[-1]" nxnd1986 三、实例收集 Sub activeCell() If ActiveCell Is Nothing Then End End Sub Sub offset() ActiveCell.Offset(RowOffset:=-2, ColumnOffset:=4).Activate End Sub Sub MyMacro '将当前的单元格的文本前加上文字 ActiveCell.Value = "无效值: " & ActiveCell.Value End Sub Sub fomula() ActiveCell.Formula = "=SUM($G$12:$G$22)" End Sub Sub MyMacro '+-*/及^运算 ActiveCell.Value = (ActiveCell.Value * 2) - 1 End Sub Sub MyMacro() '移动单元格 ActiveCell.Value = "Top cell" ActiveCell.Offset(1, 0) = "Bottom cell" End Sub Sub MyMacro() '移动到新的单元格 ' Change the top cell. ActiveCell.Value = "Top cell" ' Move down one cell. ActiveCell.Offset(1, 0).Select ' Now this changes the bottom cell. ActiveCell.Value = "Bottom cell" End Sub Sub selectRange() MsgBox ActiveCell.Address End Sub Sub DownTen() '改变激活的单元格 ActiveCell.Offset(10, 0).Select End Sub Sub SelectUp() Range(ActiveCell, ActiveCell.End(xlUp)).Select End Sub Sub SelectToRight() Range(ActiveCell, ActiveCell.End(xlToRight)).Select End Sub Sub SelectToLeft() Range(ActiveCell, ActiveCell.End(xlToLeft)).Select End Sub Sub SelectCurrentRegion() '选择激活的区域 ActiveCell.CurrentRegion.Select End Sub Sub SelectActiveArea() '选择激活的特定区域 Range(Range("A1"), ActiveCell.SpecialCells(xlLastCell)).Select End Sub Sub ActivateNextBlankDown() '说明:假定A1:A8都有数据,A9没有数据,如果点击A1:A8的任 '何单元格,光标都会跳到第一个没有数据的那个单元格,即跳到A9 ActiveCell.Offset(1, 0).Select Do While Not IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Select Loop End Sub Sub 向右边的单元格交换数据() Dim temp temp = ActiveCell.Value ActiveCell.Value = ActiveCell.Offset(0, 1).Value ActiveCell.Offset(0, 1).Value = temp End Sub Sub SwapTextWithCellOnRight() '复制 Dim CellContent CellContent = ActiveCell.Value ActiveCell.Offset(0, 1).Value = CellContent End Sub Sub MyMacro() If ActiveCell.Value > 100 Then ActiveCell.Value = 100 End If End Sub Sub MyMacro() '使用If语句 If ActiveCell.Value > 1000 Then ActiveCell.Offset(0, 1).Value = ActiveCell.Value * 0.05 ElseIf ActiveCell.Value > 500 Then ActiveCell.Offset(0, 1).Value = ActiveCell.Value * 0.025 Else ActiveCell.Offset(0, 1).Value = 5 End If End Sub Sub FormatAllCellsInColumn() '假定A1:A8都有数据,A9没有数据,如果点击A1,再运行该程序 '就可以看到效果 Do Until ActiveCell.Value = "" ActiveCell.Rows.EntireRow.Select Selection.Interior.ColorIndex = 35 Selection.Interior.Pattern = xlSolid ActiveCell.Offset(2, 0).Select Loop End Sub Sub FixText() '将首字母换成大写 ActiveCell.Value = Application.WorksheetFunction.Proper("asdf") End Sub Sub DoWhileDemo() 'do While...loop的示例 Do While ActiveCell.value <> Empty ActiveCell.value = ActiveCell.value * 2 ActiveCell.offset(1, 0).Select Loop End Sub Sub DoLoopWhileDemo() 'do loop示例 Do ActiveCell.value = ActiveCell.value * 2 ActiveCell.offset(1, 0).Select Loop While ActiveCell.value <> Empty End Sub Sub SelectActiveColumn() '选择激活的单元格所在的列 If IsEmpty(ActiveCell) Then Exit Sub On Error Resume Next If 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).Select End Sub Sub SelectActiveRow() '选择激活的单元格所在的行 If IsEmpty(ActiveCell) Then Exit Sub On Error Resume Next If 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) Range(LeftCell, RightCell).Select End Sub Sub ActivateNextBlankDown() '选择本列的第一个空单元格 ActiveCell.Offset(1, 0).Select Do While Not IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Select Loop End Sub Sub ActivateNextBlankToRight() '选择本行的第一个空单元格 ActiveCell.Offset(0, 1).Select Do While Not IsEmpty(ActiveCell) ActiveCell.Offset(0, 1).Select Loop End Sub Sub SelectFirstToLastInRow() '选择有数据的本行 Set LeftCell = Cells(ActiveCell.Row, 1) Set RightCell = Cells(ActiveCell.Row, 256) If IsEmpty(LeftCell) Then Set LeftCell = LeftCell.End(xlToRight) If IsEmpty(RightCell) Then Set RightCell = RightCell.End(xlToLeft) If LeftCell.Column = 256 And RightCell.Column = 1 Then ActiveCell.Select Else Range(LeftCell, RightCell).Select End Sub Sub GoToMax() '找到本表中最大的值 Dim WorkRange As Range If TypeName(Selection) <> "Range" Then Exit Sub If Selection.Count = 1 Then Set WorkRange = Cells Else Set WorkRange = Selection End If MaxVal = Application.Max(WorkRange) On Error Resume Next WorkRange.Find(What:=MaxVal, _ After:=WorkRange.Range("A1"), _ LookIn:=xlValues, _ LookAt:=xlPart, _ SearchOrder:=xlByRows, _ SearchDirection:=xlNext, MatchCase:=False _ ).Select If Err <> 0 Then MsgBox "Max value was not found: " _ & MaxVal End Sub Sub ToggleWrapText() '取消自动换行 '选择一个有自动换行的区域 If TypeName(Selection) = "Range" Then Selection.WrapText = Not ActiveCell.WrapText End If End Sub Sub set1() '用Set激活 Set myActiveCell = ActiveCell Set myActiveWorksheet = ActiveSheet Set myActiveWorkbook = ActiveWorkbook '激活 myActiveWorkbook.Activate myActiveWorksheet.Activate myActiveCell.Activate End Sub Sub font() '设置当前激活区域的字体 With ActiveCell.CurrentRegion.Font .Name = "Times New Roman" .Size = 12 .Bold = False .Italic = False End With End Sub 相关链接: Excel百问百答: Lookup的用法详解(含实例和动画)
本文档为【Excel VBA Activecell 用法集锦】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_421808
暂无简介~
格式:doc
大小:35KB
软件:Word
页数:0
分类:工学
上传时间:2019-06-28
浏览量:99