首页 ExcelVBA代码选择单元格和区域示例

ExcelVBA代码选择单元格和区域示例

举报
开通vip

ExcelVBA代码选择单元格和区域示例ExcelVBA代码选择单元格和区域示例 目录 如何选择当前工作表中的单元格, 如何选择同一工作簿中其它工作表上的单元格, 如何选择不同工作簿中的单元格, 如何选择当前工作表中的单元格区域, 如何选择同一工作簿中另一工作表上的单元格区域, 如何选择不同工作簿中工作表上的单元格区域, 如何在当前工作表中选择命名区域, 如何选择同一工作簿中另一工作表上的命名区域, 如何选择不同工作簿中工作表上的命名区域, 如何选择与当前单元格相关的单元格, 不是当前单元格)相关的单元格, 如何选择与另一单元格( 如何选择偏离...

ExcelVBA代码选择单元格和区域示例
ExcelVBA代码选择单元格和区域示例 目录 如何选择当前工作表中的单元格, 如何选择同一工作簿中其它工作表上的单元格, 如何选择不同工作簿中的单元格, 如何选择当前工作表中的单元格区域, 如何选择同一工作簿中另一工作表上的单元格区域, 如何选择不同工作簿中工作表上的单元格区域, 如何在当前工作表中选择命名区域, 如何选择同一工作簿中另一工作表上的命名区域, 如何选择不同工作簿中工作表上的命名区域, 如何选择与当前单元格相关的单元格, 不是当前单元格)相关的单元格, 如何选择与另一单元格( 如何选择偏离指定区域的一个单元格区域, 如何选择一个指定的区域并扩展区域的大小, 如何选择一个指定的区域,再偏离,然后扩展区域的大小, 如何选择两个或多个指定区域, 如何选择两个或多个指定区域的交叉区域, 如何选择连续数据列中的最后一个单元格, 如何选择连续数据列底部的空单元格, 如何选择某列中连续数据单元格区域, 如何选择某列中非连续数据单元格区域, 如何选择一个矩形(规则的)单元格区域, 如何选择多个不同长度的非连续列, 引用工作表上的所有单元格 使用 A1 表示法引用单元格和区域 引用行和列 使用索引号引用单元格 使用快捷表示法引用单元格 使用 Range 对象引用单元格 引用命名区域 引用多个区域 处理三维区域 如何选择当前工作表中的单元格, : 例如,可以使用下面的代码选择当前工作表中的单元格D5 ActiveSheet.Cells(5, 4).Select 或:ActiveSheet.Range("D5").Select 如何选择同一工作簿中其它工作表上的单元格, 例如,要选择同一工作簿中另一工作表上的单元格E6,可以使用下面的代码: Application.Goto ActiveWorkbook.Sheets("Sheet2").Cells(6, 5) Application.Goto (ActiveWorkbook.Sheets("Sheet2").Range("E6")) 或: 也可以先激活该工作表,然后再选择: Sheets("Sheet2").Activate ActiveSheet.Cells(6, 5).Select 如何选择不同工作簿中的单元格, 例如,要选择另一工作簿中的一个工作表上的单元格F7,可以使用下面的代码: Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Cells(7, 6) 或:Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("F7") 也可以先激活该工作簿中的工作表,然后再选择: Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate ActiveSheet.Cells(7, 6).Select 如何选择当前工作表中的单元格区域, 例如,要选择当前工作表中的单元格区域C2:D10,可以使用下面的代码: ActiveSheet.Range(Cells(2, 3), Cells(10, 4)).Select 或:ActiveSheet.Range("C2:D10").Select 或:ActiveSheet.Range("C2", "D10").Select 如何选择同一工作簿中另一工作表上的单元格区域, 例如,要选择同一工作簿中另一工作表上的单元格区域D3:E11,可以使用下面的代码: Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3:E11") 或:Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3", "E11") 也可以先激活该工作表,然后再选择: Sheets("Sheet3").Activate ActiveSheet.Range(Cells(3, 4), Cells(11, 5)).Select 如何选择不同工作簿中工作表上的单元格区域, 例如,要选择另一工作簿中某工作表上的单元格区域E4:F12,可以使用下面的代码: Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4:F12") Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4", "F12") 或: 也可以先激活该工作表,然后再选择: Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate ActiveSheet.Range(Cells(4, 5), Cells(12, 6)).Select 如何在当前工作表中选择命名区域, 例如,要选择当前工作表中名为“Test”的区域,可以使用下面的代码: Range("Test").Select 或:Application.Goto "Test" 如何选择同一工作簿中另一工作表上的命名区域, 例如,选择同一工作簿中另一工作表上名为“Test”的区域,可使用下面的代码: Application.Goto Sheets("Sheet1").Range("Test") 也可以先激活工作表,再选择: Sheets("Sheet1").Activate Range("Test").Select 如何选择不同工作簿中工作表上的命名区域, 例如,要选择不同工作簿中工作表上名为“Test”的区域,可使用下面的代码: Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet2").Range("Test") 也可以先激活工作表,再选择: Workbooks("BOOK2.XLS").Sheets("Sheet2").Activate Range("Test").Select 如何选择与当前单元格相关的单元格, 例如,要选择距当前单元格下面5行左侧4列的单元格,可以使用下面的代码: ActiveCell.Offset(5, -4).Select 要选择距当前单元格上方2行右侧3列的单元格,可以使用下面的代码: ActiveCell.Offset(-2, 3).Select 注意:一定要保证当前单元格与所选单元格之间的距离在工作表范围内,否则会出错。 如何选择与另一单元格(不是当前单元格)相关的单元格, 例如,要选择距单元格C7下方5行右侧4列的单元格,可以使用下面的代码: ActiveSheet.Cells(7, 3).Offset(5, 4).Select 或:ActiveSheet.Range("C7").Offset(5, 4).Select 如何选择偏离指定区域的一个单元格区域, 例如,要选择与名为“Test”的区域大小相同但在该区域下方4行右侧3列的一个区域,可以使用下面的 代码: ActiveSheet.Range("Test").Offset(4, 3).Select 如果该命名区域不在当前工作表中,可以先激活该工作表,然后再选择,如下面的代码: Sheets("Sheet3").Activate ActiveSheet.Range("Test").Offset(4, 3).Select 如何选择与当前单元格相关的单元格, 例如,要选择距当前单元格下面5行左侧4列的单元格,可以使用下面的代码: ActiveCell.Offset(5, -4).Select 要选择距当前单元格上方2行右侧3列的单元格,可以使用下面的代码: ActiveCell.Offset(-2, 3).Select 注意:一定要保证当前单元格与所选单元格之间的距离在工作表范围内,否则会出错。 不是当前单元格)相关的单元格, 如何选择与另一单元格( 例如,要选择距单元格C7下方5行右侧4列的单元格,可以使用下面的代码: ActiveSheet.Cells(7, 3).Offset(5, 4).Select 或:ActiveSheet.Range("C7").Offset(5, 4).Select 如何选择偏离指定区域的一个单元格区域, 例如,要选择与名为“Test”的区域大小相同但在该区域下方4行右侧3列的一个区域,可以使用下面的代码: ActiveSheet.Range("Test").Offset(4, 3).Select 如果该命名区域不在当前工作表中,可以先激活该工作表,然后再选择,如下面的代码: Sheets("Sheet3").Activate ActiveSheet.Range("Test").Offset(4, 3).Select 下面的示例使用了如下图所示的工作表。 如何选择连续数据列中的最后一个单元格, 例如,要选择一个连续列中的最后一个单元格,可以使用下面的代码: ActiveSheet.Range("a1").End(xlDown).Select 该代码使用在上面的工作表中,单元格A4被选择。 如何选择连续数据列底部的空单元格, 例如,要选择连续单元格区域下面的单元格,可以使用下面的代码: ActiveSheet.Range("a1").End(xlDown).Offset(1, 0).Select 该代码使用在上面的工作表中,单元格A5被选择。 如何选择某列中连续数据单元格区域, 例如,要选择一列中的连续数据单元格区域,可以使用下面的代码: ActiveSheet.Range("a1", ActiveSheet.Range("a1").End(xlDown)).Select ActiveSheet.Range("a1:" & ActiveSheet.Range("a1").End(xlDown).Address).Select 或: 该代码使用在上面的工作表中,单元格区域A1:A4将被选择。 如何选择某列中非连续数据单元格区域, 例如,要选择某列中非连续数据单元格区域,可以使用下面的代码: ActiveSheet.Range("a1", ActiveSheet.Range("a65536").End(xlUp)).Select 或:ActiveSheet.Range("a1:" & ActiveSheet.Range("a65536").End(xlUp).Address).Select 该代码使用在上面的工作表中,单元格区域A1:A6将被选择。 如何选择一个矩形(规则的)单元格区域, 要选择围绕某单元格的一个矩形区域,可以使用CurrentRegion方法。CurrentRegion方法将选择四周被 空行和空列围绕的区域,如下面的代码: ActiveSheet.Range("a1").CurrentRegion.Select 该代码使用在上面的工作表中,将选择单元格区域A1:C4。也可以使用下面的代码: ActiveSheet.Range("a1", ActiveSheet.Range("a1").End(xlDown).End(xlToRight)).Select 或: ActiveSheet.Range("a1:" & ActiveSheet.Range("a1").End(xlDown).End(xlToRight).Address).Select 若想选择单元格区域A1:C6,可使用下面的代码: lastCol = ActiveSheet.Range("a1").End(xlToRight).Column lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row ActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Select 或: lastCol = ActiveSheet.Range("a1").End(xlToRight).Column lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row ActiveSheet.Range("a1:" & ActiveSheet.Cells(lastRow, lastCol).Address).Select 下面的示例使用了如下图所示的工作表。 如何选择连续数据列中的最后一个单元格, 例如,要选择一个连续列中的最后一个单元格,可以使用下面的代码: ActiveSheet.Range("a1").End(xlDown).Select 该代码使用在上面的工作表中,单元格A4被选择。 如何选择连续数据列底部的空单元格, 例如,要选择连续单元格区域下面的单元格,可以使用下面的代码: ActiveSheet.Range("a1").End(xlDown).Offset(1, 0).Select 该代码使用在上面的工作表中,单元格A5被选择。 如何选择某列中连续数据单元格区域, 例如,要选择一列中的连续数据单元格区域,可以使用下面的代码: ActiveSheet.Range("a1", ActiveSheet.Range("a1").End(xlDown)).Select 或:ActiveSheet.Range("a1:" & ActiveSheet.Range("a1").End(xlDown).Address).Select 该代码使用在上面的工作表中,单元格区域A1:A4将被选择。 如何选择某列中非连续数据单元格区域, 例如,要选择某列中非连续数据单元格区域,可以使用下面的代码: ActiveSheet.Range("a1", ActiveSheet.Range("a65536").End(xlUp)).Select 或:ActiveSheet.Range("a1:" & ActiveSheet.Range("a65536").End(xlUp).Address).Select 该代码使用在上面的工作表中,单元格区域A1:A6将被选择。 如何选择一个矩形(规则的)单元格区域, 要选择围绕某单元格的一个矩形区域,可以使用CurrentRegion方法。CurrentRegion方法将选择四周被 空行和空列围绕的区域,如下面的代码: ActiveSheet.Range("a1").CurrentRegion.Select 该代码使用在上面的工作表中,将选择单元格区域A1:C4。也可以使用下面的代码: ActiveSheet.Range("a1", ActiveSheet.Range("a1").End(xlDown).End(xlToRight)).Select 或: ActiveSheet.Range("a1:" & ActiveSheet.Range("a1").End(xlDown).End(xlToRight).Address).Select 若想选择单元格区域A1:C6,可使用下面的代码: lastCol = ActiveSheet.Range("a1").End(xlToRight).Column lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row ActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Select 或: lastCol = ActiveSheet.Range("a1").End(xlToRight).Column lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row ActiveSheet.Range("a1:" & ActiveSheet.Cells(lastRow, lastCol).Address).Select 注:使用Application.Goto方法,如果指定另一工作表(不是当前工作表)中的指定区域,在Range属性 中使用两个Cells属性时,则必须包括Sheets对象,如: Application.Goto Sheets("Sheet1").Range(Sheets("Sheet1").Range(Sheets("Sheet1").Cells(2, 3), Sheets("Sheet1").Cells(4, 5))) 在VBA中,Range 对象既可表示单个单元格,也可表示单元格区域。下面的 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 说明了标识和处理Range 对象最常用的方法。 引用工作表上的所有单元格 如果对工作表应用 Cells 属性时不指定索引号,该方法将返回代表工作表上所有单元格的 Range 对象。 以下 Sub 过程清除活动工作簿中 Sheet1 上的所有单元格的内容。 Sub ClearSheet() Worksheets("Sheet1").Cells.ClearContents End Sub 使用 A1 表示法引用单元格和区域 A1 引用样式中的单元格或单元格区域。下述子例程将单元格区域 A1:D5 的字体可使用 Range 属性引用 设置为加粗。 Sub FormatRange() Workbooks("Book1").Sheets("Sheet1").Range("A1:D5") _ .Font.Bold = True End Sub 下表演示了使用 Range 属性的一些 A1 样式引用。 引用 含义 Range("A1") 单元格 A1 Range("A1:B5") 从单元格 A1 到单元格 B5 的区域 多块选定区域 Range("C5:D9,G9:H16") Range("A:A") A 列 Range("1:1") 第一行 Range("A:C") 从 A 列到 C 列的区域 Range("1:5") 从第一行到第五行的区域 Range("1:1,3:3,8:8") 第 1、3 和 8 行 Range("A:A,C:C,F:F") A 、C 和 F 列 在VBA中,Range 对象既可表示单个单元格,也可表示单元格区域。下面的内容说明了标识和处理Range对象最常用的方法。 引用工作表上的所有单元格 如果对工作表应用 Cells 属性时不指定索引号,该方法将返回代表工作表上所有单元格的 Range 对象。以下 Sub 过程清除活动工作簿中 Sheet1 上的所有单元格的内容。 Sub ClearSheet() Worksheets("Sheet1").Cells.ClearContents End Sub 使用索引号引用单元格 通过使用行列索引号,可用 Cells 属性引用单个单元格。该属性返回代表单个单元格的 Range 对象。在下例中,Cells(6,1) 返回 Sheet1 上的单元格 A6,然后将 Value 属性设置为 10。 Sub EnterValue() Worksheets("Sheet1").Cells(6, 1).Value = 10 End Sub 因为可用变量替代编号,所以 Cells 属性非常适合于在单元格区域中循环,如下例中所示。 Sub CycleThrough() Dim Counter As Integer For Counter = 1 To 20 Worksheets("Sheet1").Cells(Counter, 3).Value = Counter Next Counter End Sub 如果要同时更改某个区域中所有单元格的属性(或将方法应用于该区域中的所有单元格),建议使用 Range 属性。 使用快捷表示法引用单元格 可用方括号将 A1 引用样式或命名区域括起来,作为 Range 属性的快捷方式。这样就不必键入单词“Range”或使用引号了,如下例中所示。 Sub ClearRange() Worksheets("Sheet1").[A1:B5].ClearContents End Sub Sub SetValue() [MyRange].Value = 30 End Sub 使用 Range 对象引用单元格 如果将对象变量设置为 Range 对象,即可用变量名轻松地操作单元格区域。 以下过程将创建对象变量 myRange,然后将活动工作簿中 Sheet1 上的区域 A1:D5 赋予该变量。随后的语句用该变量名称代替 Range 对象,以修改该区域的属性。 Sub Random() Dim myRange As Range Set myRange = Worksheets("Sheet1").Range("A1:D5") myRange.Formula = "=RAND()" myRange.Font.Bold = True End Sub 引用命名区域 用名称比用 A1 样式记号更容易标识单元格区域。若要命名选定的单元格区域,请单击编辑栏左端的名称框,键入名称,再按 Enter。 引用命名区域 以下示例引用名为“MyBook.xls”的工作簿中名为“MyRange”的区域。 Sub FormatRange() Range("MyBook.xls!MyRange").Font.Italic = True End Sub 以下示例引用名为“Report.xls”的工作簿中特定于工作表的区域“Sheet1!Sales”。 Sub FormatSales() Range("[Report.xls]Sheet1!Sales").BorderAround Weight:=xlthin End Sub 要选定命名区域,可使用 GoTo 方法,该方法将激活工作簿和工作表,然后选定该区域。 Sub ClearRange() Application.Goto Reference:="MyBook.xls!MyRange" Selection.ClearContents End Sub 以下示例显示对于活动工作簿将如何编写与上例相同的过程。 Sub ClearRange() Application.Goto Reference:="MyRange" Selection.ClearContents End Sub 在命名区域中的单元格上循环 下例用 For Each...Next 循环语句在命名区域中的每一个单元格上循环。如果该区域中的任一单元格的值超过 limit 的值,就将该单元格的颜色更改为黄色。 Sub ApplyColor() Const Limit As Integer = 25 For Each c In Range("MyRange") If c.Value > Limit Then c.Interior.ColorIndex = 27 End If Next c End Sub 引用多个区域 使用适当的方法可以很容易地同时引用多个单元格区域。可用 Range 和 Union 方法引用任意组合的单元格区域;用 Areas 属性可引用工作表上选定的一组单元格区域。 使用 Range 属性 通过在两个或多个引用之间插入逗号,可使用 Range 属性引用多个区域。以下示例清除了 Sheet1 上三个区域的内容。 Sub ClearRanges() Worksheets("Sheet1").Range("C5:D9,G9:H16,B14:D18"). _ ClearContents End Sub 命名区域使得用 Range 属性处理多个区域更加容易。以下示例可在所有这三个命名区域处于同一工作表时运行。 Sub ClearNamed() Range("MyRange, YourRange, HisRange").ClearContents End Sub 使用 Union 方法 使用 Union 方法可将多个区域组合到一个 Range 对象中。以下示例创建了名为 myMultipleRange 的 Range 对象,并将其定义为区域 A1:B2 和 C3:D4 的组合,然后将该组合区域的字体设置为加粗。 Sub MultipleRange() Dim r1, r2, myMultipleRange As Range Set r1 = Sheets("Sheet1").Range("A1:B2") Set r2 = Sheets("Sheet1").Range("C3:D4") Set myMultipleRange = Union(r1, r2) myMultipleRange.Font.Bold = True End Sub 使用 Areas 属性 可用 Areas 属性引用选定的单元格区域或多块选定区域中的区域集合。下述过程计算选定区域中的块数目,如果有多个块,就显示一则警告消息。 Sub FindMultiple() If Selection.Areas.Count > 1 Then MsgBox "不能对多个选区进行操作." End If End Sub 处理三维区域 如果要处理若干工作表上相同位置的单元格区域,可用 Array 函数选定两张或多张工作表。下例设置三维单元格区域的边框格式。 Sub FormatSheets() Sheets(Array("Sheet2", "Sheet3", "Sheet5")).Select Range("A1:H1").Select Selection.Borders(xlBottom).LineStyle = xlDouble End Sub 下例应用 FillAcrossSheets 方法,将 Sheet2 上的区域中的格式和所有数据传送到活动工作簿中所有工作表上的相应区域。 Sub FillAll() Worksheets("Sheet2").Range("A1:H1") _ .Borders(xlBottom).LineStyle = xlDouble Worksheets.FillAcrossSheets (Worksheets("Sheet2") _ .Range("A1:H1")) End Sub by fanjy in 2007-2-10 提示:Excel 2007 VBA帮助系统重新进行了组织,更加清楚,采用了Visual Studio帮助形式,更易于学习,特别有助于初学者学习。
本文档为【ExcelVBA代码选择单元格和区域示例】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_624976
暂无简介~
格式:doc
大小:75KB
软件:Word
页数:17
分类:互联网
上传时间:2017-09-30
浏览量:30