精华内容
下载资源
问答
  • 2018-09-03 23:12:12

    在用Excel使用函数公式计算表格中的数据时,往往需要对单元格进行引用,在Excel2016中,单元格的引用包括相对引用绝对引用 混合引用。下面分别介绍一下这三种引用。

    一、相对引用

    相对引用是指引用单元格的相对地址。采用“列字母+行字母”的格式来表示。如A1,B2等。在相对引用中,如果公式所在的单元格的位置发生改变,引用也将改变。

    二、绝对引用

    绝对引用是指的是某一确定位置,绝对引用不会随单元格位置的改变而改变。如果一个公式中有绝对引用,则当进行其他操作时绝对引用的起始地址始终不会改变。绝对引用是在单元格的行地址、列地址前面都加上一个美元符号"$“。如$A$1,

    三、混合引用

    混合引用是指公式中引用的单元格具有绝对列和相对行或绝对行和相对列。绝对列引用采用如"$A1“的形式,绝对行引用才用如"A$1”的形式。在相对引用中,如果公式所在的单元格的位置发生改变,则相对引用将改变,绝对引用不会改变。

    小提示:在Excel中创建公式时,可以按【F4】快捷键在相对引用,绝对引用,混合引用之间进行切换。

    更多相关内容
  • 问题一:VBA代码,如何引用当前工作表中的单个单元格(例如引用单元格C3)? 回答:可以使用下面列举的任一方式对当前工作表中单元格(C3)进行引用。 (1) Range("C3") (2) [C3] (3) Cells(3, 3) ...

    问题一:在VBA代码中,如何引用当前工作表中的单个单元格(例如引用单元格C3)?

    回答:可以使用下面列举的任一方式对当前工作表中的单元格(C3)进行引用。

    (1) Range("C3")

    (2) [C3]

    (3) Cells(3, 3)

    (4) Cells(3, "C")

    (5) Range("C4").Offset(-1)

    Range("D3").Offset(, -1)

    Range("A1").Offset(2, 2)

    (6) 若C3为当前单元格,则可使用:ActiveCell

    (7) 若将C3单元格命名为“Range1”,则可使用:Range("Range1")或[Range1]

    (8) Cells(4, 3).Offset(-1)

    (9) Range("A1").Range("C3")

    问题二:在VBA代码中,我要引用当前工作表中的B2:D6单元格区域,有哪些方式?

    回答:可以使用下面列举的任一方式对当前工作表中单元格区域B2:D6进行引用。

    (1) Range(“B2:D6”)

    (2) Range("B2", "D6")

    (3) [B2:D6]

    (4) Range(Range("B2"), Range("D6"))

    (5) Range(Cells(2, 2), Cells(6, 4))

    (6) 若将B2:D6区域命名为“MyRange”,则又可以使用下面的语句引用该区域:

    ① Range("MyRange")

    ② [MyRange]

    (7) Range("B2").Resize(5, 3)

    (8) Range("A1:C5").Offset(1, 1)

    (9) 若单元格B2为当前单元格,则可使用语句:Range(ActiveCell, ActiveCell.Offset(4, 2))

    (10) 若单元格D6为当前单元格,则可使用语句:Range("B2", ActiveCell)

    问题三:在VBA代码中,如何使用变量实现对当前工作表中不确定单元格区域的引用?

    回答:有时,我们需要在代码中依次获取工作表中特定区域内的单元格,这通常可以采取下面的几种方式:

    (1) Range(“A” & i)

    (2) Range(“A” & i & “:C” & i)

    (3) Cells(i,1)

    (4) Cells(i,j)

    其中,i、j为变量,在循环语句中指定i和j的范围后,依次获取相应单元格。

    问题四:在VBA代码中,如何扩展引用当前工作表中的单元格区域?

    回答:可以使用Resize属性,例如:

    (1) ActiveCell.Resize(4, 4),表示自当前单元格开始创建一个4行4列的区域。

    (2) Range("B2").Resize(2, 2),表示创建B2:C3单元格区域。

    (3) Range("B2").Resize(2),表示创建B2:B3单元格区域。

    (4) Range("B2").Resize(, 2),表示创建B2:C2单元格区域。

    如果是在一个单元格区域(如B3:E6),或一个命名区域中(如将单元格区域B3:E6命名为“MyRange”)使用Resize属性,则只是相对于单元格区域左上角单元格扩展区域,例如:

    代码Range("C3:E6").Resize(, 2),表示单元格区域C3:D6,并且扩展的单元格区域可不在原单元格区域内。

    因此,可以知道Resize属性是相对于当前活动单元格或某单元格区域中左上角单元格按指定的行数或列数扩展单元格区域。

    问题五:在VBA代码中,如何在当前工作表中基于当前单元格区域或指定单元格区域处理其它单元格区域?

    回答:可以使用Offset属性,例如:

    (1) Range("A1").Offset(2, 2),表示单元格C3。

    (2) ActiveCell.Offset(, 1),表示当前单元格下一列的单元格。

    (3) ActiveCell.Offset(1),表示当前单元格下一行的单元格。

    (4) Range("C3:D5").Offset(, 1),表示单元格区域D3:E5,即将整个区域偏移一列。

    从上面的代码示例可知,Offset属性从所指定的单元格开始按指定的行数和列数偏移,从而到达目的单元格,但偏移的行数和列数不包括指定单元格本身。

    问题六:在VBA代码中,如何在当前工作表中引用交叉区域?

    回答:可以使用Intersect方法,例如:

    Intersect(Range("C3:E6"), Range("D5:F8")),表示单元格区域D5:E6,即单元格区域C3:E6与D5:F8相重迭的区域。

    问题七:在VBA代码中,如何在当前工作表中引用多个区域?

    回答:

    (1) 可以使用Union方法,例如:

    Union(Range("C3:D4"), Range("E5:F6")),表示单元格区域C3:D4和E5:F6所组成的区域。

    Union方法可以将多个非连续区域连接起来成为一个区域,从而可以实现对多个非连续区域一起进行操作。

    (2) 也可以使用下面的代码:

    Range("C3:D4, E5:F6")或[C3:D4, E5:F6]

    注意:Range("C3:D4","F5:G6"),表示单元格区域C3:G6,即将两个区域以第一个区域左上角单元格为起点,以第二个区域右下角单元格为终点连接成一个新区域。

    同时,在引用区域后使用Rows属性和Columns属性时,注意下面代码的区别:

    ①Range("C3:D4", "F8:G10").Rows.Count,返回的值为8;

    ②Range("C3:D4,F8:G10").Rows.Count,返回的值为2,即只计算第一个单元格区域。

    问题八:在VBA代码中,如何引用当前工作表中活动单元格或指定单元格所在的区域(当前区域)?

    回答:可以使用CurrentRegion属性,例如:

    (1) ActiveCell.CurrentRegion,表示活动单元格所在的当前区域。

    (2) Range("D5").CurrentRegion,表示单元格D5所在的当前区域。

    当前区域是指周围由空行或空列所围成的区域。该属性的详细使用参见《CurrentRegion属性示例》一文。

    问题九:在VBA代码中,如何引用当前工作表中已使用的区域?

    回答:可以使用UsedRange属性,例如:

    (1) Activesheet.UsedRange,表示当前工作表中已使用的区域。

    (2) Worksheets("sheet1").UsedRange,表示工作表sheet1中已使用的区域。

    与CurrentRegion属性不同的是,该属性代表工作表中已使用的单元格区域,包括显示为空行,但已进行过格式的单元格区域。该属性的详细使用参见《解析UsedRange属性》一文。

    问题十:如何在单元格区域内指定特定的单元格?

    回答:可以使用Item属性,例如:

    (1)Range("A1:B10").Item(5,3)指定单元格C5,这个单元格处于以区域中左上角单元格A1(即区域中第1行第1列的单元格)为起点的第5行第3列。因为Item属性为默认属性,因此也可以简写为:Range("A1:B10")(5,3)。

    如果将A1:B10区域命名为”MyRange”,那么Range("MyRange")(5,3)也指定单元格C5。

    (2) Range("A1:B10")(12,13)指定单元格M12,即用这种方式引用单元格,该单元格不必一定要包含在区域内。

    同时,也不需要索引数值是正值,例如:

    ① Range("D4:F6")(0,0)代表单元格C3;

    ② Range("D4:F6")(-1,-2)代表单元格A2。

    而Range("D4:F6")(1,1)代表单元格D4。

    (3) 也可以在单元格区域中循环,例如:

    Range("D4:F6")(2,2)(3,4)代表单元格H7,即该单元格位于作为左上角单元格E5的第3行第4列(因为E5是开始于区域中左上角单元格D4起的第2行第2列)。

    (4) 也能使用一个单个的索引数值进行引用。计数方式为从左向右,即在区域中的第一行开始从左向右计数,第一行结束后,然后从第二行开始从左到右接着计数,依次

    类推。(注:从区域中第一行第一个单元格开始计数,当第一行结束时,转入第二行最左边的单元格,这样按一行一行从左向右依次计数。以单元格区域中第1个单

    元格开始,按上述规则依次为第2个单元格、第3个单元格….等等),例如:

    Range("A1:B2")(1) 代表单元格A1;

    Range("A1:B2")(2) 代表单元格B1;

    Range("A1:B2")(3) 代表单元格A2;

    Range("A1:B2")(4) 代表单元格B2。

    这种方法可在工作表中连续向下引用单元格(即不一定是在单元格区域内,但在遵循相同的规律),例如:

    Range("A1:B2")(5)代表单元格A3;

    Range("A1:B2")(14)代表单元格B7,等等。

    也可以使用单个的负数索引值。

    这种使用单个索引值的方法对遍历列是有用的,例如,Range("D4")(1)代表单元格D4,Range("D4")(2)代表单元格D5,Range

    ("D4")(11)代表单元格D14,等等。

    同理,稍作调整后也可遍历行,例如:

    Range("D4").Columns(2)代表单元格E4,Range("D4").Columns(5)指定单元格H4,等等。

    (5)当与对象变量配合使用时,Item属性能提供简洁并有效的代码,例如:

    Set rng = Worksheets(1).[a1]

    定义了对象变量后,像单元格方法一样,Item属性允许使用两个索引数值引用工作表中的任一单元格,例如,rng(3,4)指定单元格D3。(By ChipPearson)

    问题十一:在VBA代码中,如何引用当前工作表中的整行或整列?

    回答:见下面的示例代码:

    (1) Range("C:C").Select,表示选择C列。

    Range("C:E").Select,表示选择C列至E列。

    (2) Range("1:1").Select,表示选择第一行。

    Range("1:3").Select,表示选择第1行至第3行。

    (3) Range("C:C").EntireColumn,表示C列;

    Range("D1").EntireColumn,表示D列。

    同样的方式,也可以选择整行,然后可以使用如AutoFit方法对整列或整行进行调整。

    问题十二:在VBA代码中,如何引用当前工作表中的所有单元格?

    回答:可以使用下面的代码:

    (1) Cells,表示当前工作表中的所有单元格。

    (2) Range(Cells(1, 1), Cells(Cells.Rows.Count, Cells.Columns.Count)),其中Cells.Rows表示工作表所有行,Cells. Columns表示工作表所有列。

    问题十三:在VBA代码中,如何引用工作表中的特定单元格区域?

    回答:在工作表中,您可能使用过“定位条件”对话框。可以通过选择菜单“编辑——定位”,单击“定位”对话框中的“定位条件”按钮显示该对话框。这个对话框可以允许用户选择特定的单元格。例如:

    (1)Worksheets("sheet1").Cells.SpecialCells(xlCellTypeAllFormatConditions),表示工作表sheet1中由带有条件格式的单元格所组成的区域。

    (2)ActiveCell.CurrentRegion.SpecialCells(xlCellTypeBlanks),表示当前工作表中活动单元格所在区域中所有空白单元格所组成的区域。

    问题十四:在VBA代码中,如何引用其它工作表或其它工作簿中的单元格区域?

    回答:要引用其它工作表或其它工作簿中的单元格区域,只需在单元格对象前加上相应的引用对象即可,例如:

    (1) Worksheets(“Sheet3”).Range(“C3:D5”),表示引用工作表sheet3中的单元格区域C3:D5。

    (2)Workbooks(“MyBook.xls”).Worksheets(“sheet1”).Range(“B2”),表示引用MyBook工作簿中工作表Sheet1上的单元格B2。

    问题十五:还有其它的一些情形吗?

    回答:列举如下:

    (1)Cells(15),表示单元格O1,即可在Cells属性中指定单元格数字来选择单元格,其计数顺序为自左至右、从上到下,又如Cells(257),表示单元格B1。

    (2) Cells(, 256),表示单元格IV1,但是如果Cells(, 257),则会返回错误。

    结语

    我们用VBA对Excel进行处理,一般是对其工作表中的数据进行处理,因此,引用单元格区域是ExcelVBA编程中最基本的操作之一,只有确定了所处理的单元格区域,才能使用相应的属性和方法进行下一步的操作。

    上面列举了一些引用单元格区域的情形和方式,可以看出,引用单元格区域有很多方式,有一些可能不常用,可以根据工作表的所处的环境和个人编程习惯进行选择使用。

    当然,在编写程序时,也可能会将上面的一些属性联合使用,以达到选取特定操作对象的目的,例如Offset属性、Resize属性、CurrentRegion属性、UsedRange属性等的组合。

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

    例如,可以使用下面的代码选择当前工作表中的单元格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

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

    例如,要选择当前工作表中名为“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

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

    Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet1!C3:D4"))

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

    Set y = 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"

    Set a = Range(StartRange, Range(StartRange).End(xlDown))

    Set b = Range(EndRange, Range(EndRange).End(xlDown))

    Union(a, b).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 表示法引用单元格和区域

    可使用 Range 属性引用 A1 引用样式中的单元格或单元格区域。下述子例程将单元格区域 A1:D5 的字体设置为加粗。

    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 列

    引用行和列

    可用 Rows 属性或 Columns 属性来处理整行或整列。这两个属性返回代表单元格区域的 Range 对象。在下例中,Rows(1) 返回 Sheet1 上的第一行,然后将区域字体加粗。

    Sub RowBold()

    Worksheets("Sheet1").Rows(1).Font.Bold = True

    End Sub

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

    引用 含义

    Rows(1) 第一行

    Rows 工作表上所有的行

    Columns(1) 第一列

    Columns("A") 第一列

    Columns 工作表上所有的列

    若要同时处理若干行或列,可创建一个对象变量并使用 Union 方法,将对 Rows 属性或 Columns 属性的多个调用组合起来。下例将活动工作簿中第一张工作表上的第一行、第三行和第五行的字体设置为加粗。

    Sub SeveralRows()

    Worksheets("Sheet1").Activate

    Dim myUnion As Range

    Set myUnion = Union(Rows(1), Rows(3), Rows(5))

    myUnion.Font.Bold = True

    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

    展开全文
  • 返回引用Excel单元格地址.rar,多数情况下,用户希望公式能够返回具体的数值,而的时候用户需要知道他们所要查找的数据在工作表中的具体位置,即单元格地址。本例,利用介绍的公式可以返回查询到的产品价格的...
  • 如何操作Excel工作簿、工作表单元格.rar,Excel,对工作簿、工作表单元格的操作,多数都可以利用VBA代码实现同样的效果。本示例文件涉及的案例包括:遍历工作簿名称示例、判断工作簿是否打开、判断工作表是否...
  • VBA代码中引用Excel工作表中单元格区域的方式小结
  • 计算机习题110、 在Excel工作表单元格区域A1:A8各单元格中均存放数值1,单元格A9为空,单元格A10为一字符计算机习题110、 在Excel工作表单元格区域A1:A8各单元格中均存放数值1,单元格A9为空,单元格A10为一字符串,...

    计算机习题110、 在Excel工作表的单元格区域A1:A8各单元格中均存放数值1,单元格A9为空,单元格A10为一字符

    计算机习题1

    10、 在Excel工作表的单元格区域A1:A8各单元格中均存放数值1,单元格A9为空,

    单元格A10为一字符串,则函数=AVERAGE(A1:A10)的结果是________.

    A) 1

    B) 0.8

    C) 8/9

    D) 0.9

    请选择-> A B C D

    11、 在Excel工作表的单元格区域A1:A8各单元格中均存放数值1,单元格A9为空,

    单元格A10为一字符串,则函数=COUNT(A1:A10)的结果是________.

    A) 10

    B) 9

    C) 8

    D) 1

    请选择-> A B C D

    12、 已知有一张工作表如下所示:

    ┌———┬———┬———┐

    │ │ A │ B │

    ├———┼———┼———┤

    │ 1 │1 │2 │

    ├———┼———┼———┤

    │ 2 │3 │3 │

    ├———┼———┼———┤

    │ 3 │ │5 │

    ├———┼———┼———┤

    │ 4 │6 │7 │

    └———┴———┴———┘

    其中A3为一空白单元,若在该单元中输入数值0,则以下统计函数________

    结果将发生变化.

    A) =SUM(A1:B4)

    B) =MAX(A1:B4)

    C) =COUNT(A1:B4)

    D) 以上函数结果均不改变

    请选择-> A B C D

    13、 在Excel中,各运算符号的优先级由高到低的顺序为________.

    A) 数学运算符、比较运算符、字符串运算符

    B) 数学运算符、字符串运算符、比较运算符

    C) 比较运算符、字符串运算符、数学运算符

    D) 字符串运算符、数学运算符、比较运算符

    请选择-> A B C D

    14、 函数TRIM的功能是________.

    A) 删除字符串中的所有空格

    B) 删除字符串前面的空格

    C) 删除字符串后面的空格

    D) 删除字符串前后的空格,保留字符之间的空格

    请选择-> A B C D

    15、 在Excel工作表的单元格区域A1:A10中,从上向下已经输入了数据1,2,3,

    ……,10,为在单元格Bi中计算单元格区域A1:Ai中所有数字之和,应先在

    单元格B1中输入公式________,然后复制公式到单元格区域B2:B10即可.

    A) =SUM(A1:A10)

    B) =SUM($B1:$B1)

    C) =SUM($A$1:A1)

    D) =SUM(A1:A1)

    请选择-> A B C D

    16、 如果在sheet2的C1单元格中输入公式时,需要引用sheet1中A2单元格的数据,

    正确引用为_________.

    A) sheet1!A2

    B) sheet1(A2)

    C) sheet1A2

    D) sheet1!(A2)

    请选择-> A B C D

    17、 在Excel中,函数=RIGHT("ABCD计算机应用",8)的返回值是________.

    A) BCD计算机应用

    B) 算机应用

    C) ABCD计算

    D) ABCD计算机应用

    请选择-> A B C D

    18、 若向单元格A1中输入函数=IF(2+9/3>1+2*3,"对","错"),则确认后

    A1单元格的结果为________.

    A) 错

    B) 对

    C) #VALUE!

    D) #REF!

    请选择-> A B C D

    1年前

    已收到2个回答

    展开全文
  • Normally, Excel uses the A1 cell reference style which uses letters for column headings and numbers for row headings. However, if you notice there are numbers on both the row headings and column headi...
    00_lead_image_r1c1_to_a1

    Normally, Excel uses the A1 cell reference style which uses letters for column headings and numbers for row headings. However, if you notice there are numbers on both the row headings and column headings, that’s the R1C1 cell reference style. No worries. It’s easy to change it back.

    通常,Excel使用A1单元格引用样式,该样式将字母用作列标题,将数字用作行标题。 但是,如果您注意到行标题和列标题上都有数字,那就是R1C1单元格引用样式。 别担心。 改回来很容易。

    To change from the R1C1 cell reference style back to to the A1 style, we will change a setting in the options. Click the “File” tab.

    要将R1C1单元格参考样式更改回A1样式,我们将更改选项中的设置。 点击“文件”标签。

    01_clicking_file_tab

    On the backstage screen, click “Options” in the list of items on the left.

    在后台屏幕上,单击左侧项目列表中的“选项”。

    02_clicking_options

    On the “Excel Options” dialog box, click “Formulas” in the list of items on the left.

    在“ Excel选项”对话框上,在左侧的项目列表中单击“公式”。

    03_clicking_formulas

    In the “Working with formulas” section, select the “R1C1 reference style” check box so there is NO check mark in the box.

    在“使用公式”部分中,选中“ R1C1参考样式”复选框,以便该框中没有复选标记。

    04_turning_off_r1c1

    Click “OK” to accept the change and close the “Excel Options” dialog box.

    单击“确定”接受更改,然后关闭“ Excel选项”对话框。

    05_clicking_ok

    The columns should now have letters in the column headings.

    现在,列标题中的字母应为字母。

    06_a1_cell_reference_style

    When you change the cell reference style, it’s changed for all the worksheets in the current workbook. If you save the workbook with this change, any other workbooks you open or new ones you create will use the same cell reference style. If you close the workbook after making this change and you haven’t made any other changes, you will NOT be prompted to save your changes.

    更改单元格引用样式时,当前工作簿中的所有工作表均已更改。 如果使用此更改保存工作簿,则您打开的任何其他工作簿或创建的新工作簿将使用相同的单元格引用样式。 如果您在进行此更改后关闭了工作簿,并且尚未进行任何其他更改,则不会提示您保存更改。

    Notice that the drop-down list to the left of the formula bar shows which cell reference style is being used. It may seem like you can change the cell reference style using this drop-down list, but we discovered that for some reason it doesn’t work.

    请注意,编辑栏左侧的下拉列表显示了正在使用的单元格引用样式。 您似乎可以使用此下拉列表更改单元格引用样式,但由于某些原因,我们发现它不起作用。

    翻译自: https://www.howtogeek.com/227178/how-to-change-the-cell-reference-style-in-excel/

    展开全文
  • 在EXCEL公式调用存放其它单元格中工作表标签名称
  • Excel 2016 单元格地址引用

    千次阅读 2019-08-02 18:26:42
    相对引用 : A1 ...绝对引用: $A$1 (行列固定,至始至终应用的都是这个地址) F4键 切换 相对,绝对 ,混合引用之间切换 或者 shift +4 混合引用: $A1 (列固定 ,行会变化) A$1 (行固定,列会变化) ...
  • 当复制公式到其他单元格时, Excel保持从属单元格引用单元格的相对位置不变, 称为相对引用. 例: A1+B2 2. 绝对引用 当复制公式到其他单元格时, Excel 仅保持公式所引用单元格绝对位置不变, 称为绝对引用. 例:...
  • 通过引用,可以公式使用工作表不同部分的数据,或者多个公式使用同一个单元格的数值。还可以引用同一个工作簿不同工作表上的单元格和其他工作簿的数据。引用不同工作簿单元格称为链接。2.引用样式...
  • excel中单元格引用方法

    千次阅读 2020-04-09 22:26:32
    1、相对引用,这个问题实际上很好理解,我们日常使用公式计算时,函数参数实际是数据的相对位置,复制公式时,函数参数的位置也发生变化,比方说,我们使用sum公式求和时,输入的公式是=sum(a1:a3),将公式...
  • 在Excel工作表单元格中引用当前工作表名称  多份Excel表格表头标题都为“××学校第1次拉练考试××班成绩表”,由于工作表结构都是一样的,所以我每次都是复制工作表然后编辑修改表的数据。但经常是表数据...
  • Excel中单元格引用

    千次阅读 2018-08-17 09:56:22
    Excel中工作表(Worksheet)是由一系列行和列组成的二维表,当我们使用Excel创建应用程序(例如编写VBA代码),或者创建一个复杂的Excel应用(例如公式、数据透视表、统计图
  • excel宏选中单元格 从单元格引用运行Excel宏 (Run an Excel Macro From a Cell Reference)Last week I wrote an article about hiding Excel macros, so they don't appear in the macro list. While working on ...
  • 为了快速输入数据,您可以让 Microsoft Office Excel 自动重复数据,或者自动填充数据,自动重复列已输入的项目如果在单元格中键入的前几个字符与该列的项相匹配,Excel 会自动输入其余的字符。但 Excel ...
  • 大家平时制作Excel工作表时,如每个月的收入支出表,一般的都会第一页给出一个总的概况,然后再给出每个月或者每天的详细资金进出表。当需要查看某个月的详情时就直接进入相应的工作表。这样操作起来会很明了...
  • Excel小技巧:Excel单元格的相对引用、绝对引用和混合引用单元格的相对引用、绝对引用和混合引用”是灵活使用公式的基础,同时也是职称计算机考试Excel模块大纲明确要求掌握的知识点。掌握该知识点不仅助于...
  • In Microsoft Excel, it’s a common task to refer to cells on other worksheets or even in different Excel files. At first, this can seem a little daunting and confusing, but once you understand how it ...
  • VBA-Excel中单元格引用方法

    千次阅读 2020-02-23 13:45:38
    VBA-Excel中单元格引用方法 使用VBA对Excel中单元格单元格区域进行选择很多种方法,可以归结为两大类: 使用行列数进行选择 根据已经选择的单元格(区域)进行再选择 1、使用range属性 VBA可以使用range...
  • 文章目录Exceld的公式1.概念2.作用3.基本使用(1)查看公式(2)输入包含内置函数的公式(3)公式深度介绍...(2)工作表工作表之间关系吗? (3)单元格单元格之间关系吗? 答案是:都没有关系。 而公式的作
  • =CONCATENATE(“引入A1的内容为:”,A6)
  • 1、学会使用Microsoft.Office.Interop.Excel读取Excel,避免了使用OleDb获取Excel工作表异常问题; 2、最重要的是可以学会导入导出合并单元格的思想,本实例代码可能会对您的需求出入,但重要的是思想; 3、学会...
  • 符号excel引用 如何在Excel工作表中添加表情符号 (How to Add Emojis in Excel Worksheets) In the old days, we typed emoticons in our messages, to show a grin, or wink, etc. Now we use emojis online,...
  • 使用openpyxl以这种方式操作Excel文件需要很多细节。首先,值得一提的是,xlsx文件包含每个单元格的两种表示形式—公式和公式的当前值。...因此,插入MATCH()工作表函数并不能解决问题。下面的代码可以满足您...
  • 当公式中引用单元格单元格区域较多时,公式可读性较差,工作表名称、单元格地址混合一起,很难维护,不小心还容易修改错误。EXCEL提供了“名称管理器",可以将单元格区域,内容较固定的部分,命名一个特殊的...
  • 另外,此应用程序可以更改给定电子表格的公式,以引用一组不同的单元格(例如:从工作表中引用C6而不是B6)。 对于SolidWorks,如果您的设计多个变体,但唯一改变的因素是整体尺寸,则很有用。 假设一组不同...
  • Excel 公式位置的引用(三维地址引用)

    千次阅读 2021-07-29 00:21:36
    Excel 公式位置的引用(三维地址引用)一个引用位置代表工作表上的一个或者一组单元格引用位置告诉Excel在哪些单元格中查找公式要用的数值。通过使用引用位置,我们可以一个公式使用工作表上不同部分的数据,...
  • 如何锁定EXCEL单元格不被修改.如何锁定EXCEL单元格不被修改.jpg

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,701
精华内容 5,480
关键字:

在excel工作表中单元格的引用地址有哪些