《VBA之Excel应用》(版权10178983)是非常经典的,是我推出的第七套教程,定位于初级,目前是第一版修订。这套教程从简单的录制宏开始讲解,一直到窗体的搭建,内容丰富,实例众多。大家可以非常容易的掌握相关的知识,这套教程共三册,十七章,都是我们在利用EXCEL工作过程中需要掌握的知识点,希望大家能掌握利用。今日讲解的内容是:VBA之Excel应用第四章第六节:利用单元格的Resize属性,调整单元格区域的大小
【分享成果,随喜正能量】225如果想要什么,不要外求,只管准备好自己的心念,不断地学习并破除内在的各种认知障碍,万事万物会自动配合你的提升。
第四章 单元格(Range)对象大家好,我们这章开始学习单元格对象。单元格(Range)对象是Excel VBA中最重要的对象之一。本章概述了Range对象的属性和方法,包括如何声明一个单元格对象,如何选择单元格对象,以及对行、列的操作,还讲解了如何对单元格进行复制、粘贴、清除、计数,以及对当前区域CurrentRegion的讲解,还涉及到单元格的联合与交叉等。通过这章的学习,大家会更清楚地看到VBA的结构,以及在实际工作中VBA的综合利用。
第六节 利用单元格的Resize属性,调整单元格区域的大小大家好,我们今天讲解的内容是利用单元格的Resize属性,调整单元格区域的大小。这讲的内容非常重要,在实际工作中,利用这个属性的例子也非常普遍,比如数组回填,字典键值或者键的回填都有对回填区域的要求,利用的主要就是这个Resize属性,来调整单元格区域大小。
1 Range.Resize 属性单元格的这个属性将调整指定区域的大小。返回一个range对象,该对象代表调整后的区域。
语法:expression.Resize (RowSize, ColumnSize)
expression:一个返回 Range 对象的表达式。
参数:
① RowSize可选Variant类型,代表新区域中的行数。 如果省略此参数,则区域中的行数保持不变。
② ColumnSize可选Variant类型,代表新区域中的列数。 如果省略此参数,则区域中的列数保持不变
2 Range.Resize 属性的示例1)示例:调整 Sheet1 中选定区域的大小,使之增加一行和一列。
Worksheets("Sheet1").Activate
numRows = Selection.Rows.Count
numColumns = Selection.Columns.Count
Selection.Resize(numRows + 1, numColumns + 1).Select
2)示例:假定已在 Sheet1 上具有含标题行的表。我们要选择表, 但不选择标题行。在运行此示例之前,活动单元格必须位于表内。
Set tbl = ActiveCell.CurrentRegion
tbl.Offset(1, 0).Resize(tbl.Rows.Count - 1, tbl.Columns.Count).Select
3 Resize 属性的实际应用从上面的讲解中我们知道,Excel vba中的“Resize”属性可以使一个范围的特定行数和列数变大或变小。但要注意,Resize属性始终以区域的左上角单元格为起点。
这部分中,我们要利用Resize 属性来完成几个实际问题的应用:
1)如下面的一个单元格区域A1:B2,我们要把这个区域扩充到A1:C4的范围:
代码该如何写呢:
Sub mynzL() 'Resize属性1
Range("A1:B2").Select
Range("A1:B2").Resize(4, 3).Select
End Sub
我们看下面的代码运行效果:
2)将范围(“A1:C4”)调整为4行1列,并选择此范围。
Sub mynzM() 'Resize属性2
Range("A1:C4").Select
Range("A1:C4").Resize(, 1).Select
End Sub
我们看下面的代码运行效果:
可见,如果省略RowSize参数,则区域中的行数保持不变。
3)将范围(“A1:C4”)调整为1行3列,并选择此范围。
Sub mynzN() 'Resize属性3
Range("A1:C4").Select
Range("A1:C4").Resize(1).Select
End Sub
我们看下面的代码运行效果:
可见,如果省略ColumnSize参数,则区域中的列数保持不变。我们要注意代码的写法。
今日内容回向:
1) 单元格的Resize属性意义是什么,有什么作用?
2) 如何省略参数中的值,是什么作用呢?
本讲内容参考程序文件:工作簿04.xlsm
我20多年的VBA成果全在下面的资料中: