暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

利用VBA中范围表达式表示工作表中的范围之实例应用

VBA语言専攻 2023-05-24
165
分享成果,随喜正能量】喝茶不但是一种味道,更多的应该是一种心情。是茶、器、空间、声音、泡茶的动态整体融合。生活是把内心的光明收拢起来,让内心的声音指引生活,用内心的心平气和、内心通达,去完成对生活的一份坚定和沉稳。
《VBA经典应用69例》(10178981),是我推出的第九套教程,教程是专门针对初级、中级学员在学习VBA过程中可能遇到的案例展开,这套教程案例众多,紧贴“实战”,并做“战术总结”,以便大家能很好的应用。教程的目的是要求大家在实际工作中要利用好VBA。本套教程共三册六十九个专题,今日内容:应用1:利用VBA中范围表达式表示工作表中的范围之实例应用          

应用1  利用VBA中范围表达式表示工作表中的范围  

   在这个专题中,我将和大家一起从VBA的角度认识在Excel中选择范围的几个基本要素,然后,我将解决选择可变范围的方法。

范围表达式中的可变变量  

我们可以利用上面的两种方案来选择一系列单元格,这种范围的表达式中形成该范围的起始和终止两个单元格是确切的地址。现在,我们来研究一下如何在同一表达式中插入动态或不确定的行或列编号。
在范围表达式中完成可变行数的设置是使用双引号和符号“&”的连结。下面我将通过几个例子给大家说明:
         
实例一:将一系列单元格着色到动态变化的最后一行
         
在下面的示例中,我们先查找最后使用的行,并在范围表达式中动态使用该行。此示例将选定的单元格涂上绿色。
         
下面先看我给出的代码:
         
Sub mynzB() '动态单元格范围的选择,并着色
    Dim lastRow As Integer
    '初始化变量
    lastRow = ActiveSheet.UsedRange.Rows.Count
    '使用范围表达式中的变量来选择
    Sheets("Sheet1").Range("A2:C" & lastRow).Select
    '将选定的单元格涂成绿色
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 5296274 '绿色
    End With
End Sub
         
代码截图:
         
代码解读:以上代码利用变量lastRow 来获得一个行数,这个行数是通过当前活动工作表中UsedRange.Rows属性来获得,这个数量就是我们期望得到的。然后利用"A2:C" & lastRow来获得这个单元格的区域。
         
代码的运行效果:
         
实例二:将特定颜色应用到选定单元格的范围
         
下面的例子是另一种使用单元格范围表达式执行操作的示例。在这里,我们将更改所选单元格的字体颜色。
         
下面看我给出代码:
Sub mynzC() '将特定颜色应用到选定单元格的范围
    Dim row_num As Integer
    '利用InputBox初始化变量
    row_num = InputBox("Enter the row number")
    '使用range表达式中的变量仅选择选择前行的数据,而不选择头部
    Sheets("Sheet1").Range(Cells(2, 1), Cells(row_num, 3)).Select
    '将选定单元格的字体涂成红色
    With Selection.Font
        '返回或设置应用的颜色,红色
        .ColorIndex = 3
    End With
End Sub
         
代码截图:
         
代码的解读:上面的代码利用row_num变量来设置单元格的范围,然后利用范围表达式的第二种方案来获得此范围的选择,并改变字体的颜色。
         
下面看输出的结果:
         
实例三:将单元格范围字体加粗
         
下面的例子是使用单元格范围表达式执行操作的示例。在这里,我们将所选单元格的字体加粗。
         
下面看我给出代码:
         
Sub mynzD() '将单元格范围字体加粗
    Dim row_num As Integer
    row_num = InputBox("Enter the row number")
    '使用范围表达式中的变量仅选择从用户输入的行数开始的前3行数据
    Sheets("Sheet1").Range(Cells(row_num, 1), Cells((row_num + 3), 3)).Select
    '字体加粗 "Bold"
    Selection.Font.Bold = True
End Sub
         
代码截图:
         
代码解读:上面的代码利用Range(Cells(row_num, 1), Cells((row_num + 3), 3))设置单元格的范围为选定的行号开始直到下面的三行。
         
代码的执行效果:
         
结论: VBA中范围表达式对于Excel中的计算和格式化单元格非常有用。不仅对于固定行号,还可以动态插入列号,以便充分利用表达式。换句话说,我们可以使用一个在表达中保留数字的变量,而不是直接硬编码引用。
         
今日内容回向:
   1  范围表达式有哪两种方式?
   2  范围表达式中对于动态边界如何设置?  
         
本讲内容参考程序文件:应用001.xlsm
         
         
我20多年的VBA实践经验,全部浓缩在下面的各个教程中:
         
         
 
 
分享成果,随喜正能量】日子是活给自己看的,不是来源于别人的指指点点;
日子是活给时光看的,别让时光的压力把咱压得喘不过气来。。

文章转载自VBA语言専攻,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论