VBA选择EXCEL单元格.docx

上传人:b****8 文档编号:9244105 上传时间:2023-05-17 格式:DOCX 页数:14 大小:18.27KB
下载 相关 举报
VBA选择EXCEL单元格.docx_第1页
第1页 / 共14页
VBA选择EXCEL单元格.docx_第2页
第2页 / 共14页
VBA选择EXCEL单元格.docx_第3页
第3页 / 共14页
VBA选择EXCEL单元格.docx_第4页
第4页 / 共14页
VBA选择EXCEL单元格.docx_第5页
第5页 / 共14页
VBA选择EXCEL单元格.docx_第6页
第6页 / 共14页
VBA选择EXCEL单元格.docx_第7页
第7页 / 共14页
VBA选择EXCEL单元格.docx_第8页
第8页 / 共14页
VBA选择EXCEL单元格.docx_第9页
第9页 / 共14页
VBA选择EXCEL单元格.docx_第10页
第10页 / 共14页
VBA选择EXCEL单元格.docx_第11页
第11页 / 共14页
VBA选择EXCEL单元格.docx_第12页
第12页 / 共14页
VBA选择EXCEL单元格.docx_第13页
第13页 / 共14页
VBA选择EXCEL单元格.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

VBA选择EXCEL单元格.docx

《VBA选择EXCEL单元格.docx》由会员分享,可在线阅读,更多相关《VBA选择EXCEL单元格.docx(14页珍藏版)》请在冰点文库上搜索。

VBA选择EXCEL单元格.docx

VBA选择EXCEL单元格

VBA选择单元格的语句

如何选择当前工作表中的单元格?

例如,可以使用下面的代码选择当前工作表中的单元格D5:

ActiveSheet.Cells(5,4).Select

或:

ActiveSheet.Range("D5").Select

如何选择同一工作簿中其它工作表上的单元格?

例如,要选择同一工作簿中另一工作表上的单元格E6,可以使用下面的代码:

Application.GotoActiveWorkbook.Sheets("Sheet2").Cells(6,5)

或:

Application.Goto(ActiveWorkbook.Sheets("Sheet2").Range("E6"))

也可以先激活该工作表,然后再选择:

Sheets("Sheet2").Activate

ActiveSheet.Cells(6,5).Select

如何选择不同工作簿中的单元格?

例如,要选择另一工作簿中的一个工作表上的单元格F7,可以使用下面的代码:

Application.GotoWorkbooks("BOOK2.XLS").Sheets("Sheet1").Cells(7,6)

或:

Application.GotoWorkbooks("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.GotoActiveWorkbook.Sheets("Sheet3").Range("D3:

E11")

或:

Application.GotoActiveWorkbook.Sheets("Sheet3").Range("D3","E11")

也可以先激活该工作表,然后再选择:

Sheets("Sheet3").Activate

ActiveSheet.Range(Cells(3,4),Cells(11,5)).Select

如何选择不同工作簿中工作表上的单元格区域?

例如,要选择另一工作簿中某工作表上的单元格区域E4:

F12,可以使用下面的代码:

Application.GotoWorkbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4:

F12")

或:

Application.GotoWorkbooks("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.GotoSheets("Sheet1").Range("Test")

也可以先激活工作表,再选择:

Sheets("Sheet1").Activate

Range("Test").Select

如何选择不同工作簿中工作表上的命名区域?

例如,要选择不同工作簿中工作表上名为“Test”的区域,可使用下面的代码:

Application.GotoWorkbooks("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

如何选择一个指定的区域并扩展区域的大小?

例如,要选择当前工作表中名为“Database”区域,然后将该区域向下扩展5行,可以使用下面的代码:

Range("Database").Select

Selection.Resize(Selection.Rows.Count+5,Selection.Columns.Count).Select

如何选择一个指定的区域,再偏离,然后扩展区域的大小?

例如,选择名为“Database”区域下方4行右侧3列的一个区域,然后扩展2行和1列,可以使用下面的代码:

Range("Database").Select

Selection.Offset(4,3).Resize(Selection.Rows.Count+2,Selection.Columns.Count+1).Select

如何选择两个或多个指定区域?

例如,为了同时选择名为“Test”和“Sample”的两个区域,可以使用下面的代码:

Application.Union(Range("Test"),Range("Sample")).Select

注意,这两个区域须在同一工作表中,如下面的代码:

Sety=Application.Union(Range("Sheet1!

A1:

B2"),Range("Sheet1!

C3:

D4"))

但Union方法不能处理不同工作表中的区域,可下面的代码:

Sety=Application.Union(Range("Sheet1!

A1:

B2"),Range("Sheet2!

C3:

D4"))

将会出错。

如何选择两个或多个指定区域的交叉区域?

例如,要选择名为“Test”和“Sample”的两个区域的交叉区域,可以使用下面的代码:

Application.Intersect(Range("Test"),Range("Sample")).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

如何选择多个不同长度的非连续列?

要同时选择A列和C列中的数据,即单元格区域A1:

A3和C1:

C6,可使用下面的代码:

StartRange="A1"

EndRange="C1"

Seta=Range(StartRange,Range(StartRange).End(xlDown))

Setb=Range(EndRange,Range(EndRange).End(xlDown))

Union(a,b).Select

注:

使用Application.Goto方法,如果指定另一工作表(不是当前工作表)中的指定区域,在Range属性中使用两个Cells属性时,则必须包括Sheets对象,如:

Application.GotoSheets("Sheet1").Range(Sheets("Sheet1").Range(Sheets("Sheet1").Cells(2,3),Sheets("Sheet1").Cells(4,5)))

在VBA中,Range对象既可表示单个单元格,也可表示单元格区域。

下面的内容说明了标识和处理Range对象最常用的方法。

引用工作表上的所有单元格

如果对工作表应用Cells属性时不指定索引号,该方法将返回代表工作表上所有单元格的Range对象。

以下Sub过程清除活动工作簿中Sheet1上的所有单元格的内容。

SubClearSheet()

    Worksheets("Sheet1").Cells.ClearContents

EndSub

使用A1表示法引用单元格和区域

可使用Range属性引用A1引用样式中的单元格或单元格区域。

下述子例程将单元格区域A1:

D5的字体设置为加粗。

SubFormatRange()

    Workbooks("Book1").Sheets("Sheet1").Range("A1:

D5")_

        .Font.Bold=True

EndSub

下表演示了使用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列

引用行和列

可用Rows属性或Columns属性来处理整行或整列。

这两个属性返回代表单元格区域的Range对象。

在下例中,Rows

(1)返回Sheet1上的第一行,然后将区域字体加粗。

SubRowBold()

    Worksheets("Sheet1").Rows

(1).Font.Bold=True

EndSub

下表举例说明了使用Rows和Columns属性的一些行和列的引用。

引用            含义

Rows

(1)    第一行

Rows    工作表上所有的行

Columns

(1)  第一列

Columns("A")  第一列

Columns    工作表上所有的列

若要同时处理若干行或列,可创建一个对象变量并使用Union方法,将对Rows属性或Columns属性的多个调用组合起来。

下例将活动工作簿中第一张工作表上的第一行、第三行和第五行的字体设置为加粗。

SubSeveralRows()

    Worksheets("Sheet1").Activate

    DimmyUnionAsRange

    SetmyUnion=Union(Rows

(1),Rows(3),Rows(5))

    myUnion.Font.Bold=True

EndSub

使用索引号引用单元格

通过使用行列索引号,可用Cells属性引用单个单元格。

该属性返回代表单个单元格的Range对象。

在下例中,Cells(6,1)返回Sheet1上的单元格A6,然后将Value属性设置为10。

SubEnterValue()

    Worksheets("Sheet1").Cells(6,1).Value=10

EndSub

因为可用变量替代编号,所以Cells属性非常适合于在单元格区域中循环,如下例中所示。

SubCycleThrough()

    DimCounterAsInteger

    ForCounter=1To20

        Worksheets("Sheet1").Cells(Counter,3).Value=Counter

    NextCounter

EndSub

如果要同时更改某个区域中所有单元格的属性(或将方法应用于该区域中的所有单元格),建议使用Range属性。

使用快捷表示法引用单元格

可用方括号将A1引用样式或命名区域括起来,作为Range属性的快捷方式。

这样就不必键入单词“Range”或使用引号了,如下例中所示。

SubClearRange()

    Worksheets("Sheet1").[A1:

B5].ClearContents

EndSub

SubSetValue()

    [MyRange].Value=30

EndSub

使用Range对象引用单元格

如果将对象变量设置为Range对象,即可用变量名轻松地操作单元格区域。

以下过程将创建对象变量myRange,然后将活动工作簿中Sheet1上的区域A1:

D5赋予该变量。

随后的语句用该变量名称代替Range对象,以修改该区域的属性。

SubRandom()

    DimmyRangeAsRange

    SetmyRange=Worksheets("Sheet1").Range("A1:

D5")

    myRange.Formula="=RAND()"

    myRange.Font.Bold=True

EndSub

引用命名区域

用名称比用A1样式记号更容易标识单元格区域。

若要命名选定的单元格区域,请单击编辑栏左端的名称框,键入名称,再按Enter。

引用命名区域

以下示例引用名为“MyBook.xls”的工作簿中名为“MyRange”的区域。

SubFormatRange()

    Range("MyBook.xls!

MyRange").Font.Italic=True

EndSub

以下示例引用名为“Report.xls”的工作簿中特定于工作表的区域“Sheet1!

Sales”。

SubFormatSales()

    Range("[Report.xls]Sheet1!

Sales").BorderAroundWeight:

=xlthin

EndSub

要选定命名区域,可使用GoTo方法,该方法将激活工作簿和工作表,然后选定该区域。

SubClearRange()

    Application.GotoReference:

="MyBook.xls!

MyRange"

    Selection.ClearContents

EndSub

以下示例显示对于活动工作簿将如何编写与上例相同的过程。

SubClearRange()

    Application.GotoReference:

="MyRange"

    Selection.ClearContents

EndSub

在命名区域中的单元格上循环

下例用ForEach...Next循环语句在命名区域中的每一个单元格上循环。

如果该区域中的任一单元格的值超过limit的值,就将该单元格的颜色更改为黄色。

SubApplyColor()

    ConstLimitAsInteger=25

    ForEachcInRange("MyRange")

        Ifc.Value>LimitThen

            c.Interior.ColorIndex=27

        EndIf

    Nextc

EndSub

引用多个区域

使用适当的方法可以很容易地同时引用多个单元格区域。

可用Range和Union方法引用任意组合的单元格区域;用Areas属性可引用工作表上选定的一组单元格区域。

使用Range属性

通过在两个或多个引用之间插入逗号,可使用Range属性引用多个区域。

以下示例清除了Sheet1上三个区域的内容。

SubClearRanges()

    Worksheets("Sheet1").Range("C5:

D9,G9:

H16,B14:

D18")._

        ClearContents

EndSub

命名区域使得用Range属性处理多个区域更加容易。

以下示例可在所有这三个命名区域处于同一工作表时运行。

SubClearNamed()

    Range("MyRange,YourRange,HisRange").ClearContents

EndSub

使用Union方法

使用Union方法可将多个区域组合到一个Range对象中。

以下示例创建了名为myMultipleRange的Range对象,并将其定义为区域A1:

B2和C3:

D4的组合,然后将该组合区域的字体设置为加粗。

SubMultipleRange()

    Dimr1,r2,myMultipleRangeAsRange

    Setr1=Sheets("Sheet1").Range("A1:

B2")

    Setr2=Sheets("Sheet1").Range("C3:

D4")

    SetmyMultipleRange=Union(r1,r2)

    myMultipleRange.Font.Bold=True

EndSub

使用Areas属性

可用Areas属性引用选定的单元格区域或多块选定区域中的区域集合。

下述过程计算选定区域中的块数目,如果有多个块,就显示一则警告消息。

SubFindMultiple()

    IfSelection.Areas.Count>1Then

        MsgBox"不能对多个选区进行操作."

    EndIf

EndSub

处理三维区域

如果要处理若干工作表上相同位置的单元格区域,可用Array函数选定两张或多张工作表。

下例设置三维单元格区域的边框格式。

SubFormatSheets()

    Sheets(Array("Sheet2","Sheet3","Sheet5")).Select

    Range("A1:

H1").Select

    Selection.Borders(xlBottom).Li

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 文化宗教

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2