VBA实用小程序69:判断一个单元格区域是否包含另一个单元格区域

2021-03-12 16:46:47 浏览数 (1)

excelperfect

有些情形下,我们需要判断一个单元格区域是否包含另一个单元格区域,或者说某单元格区域是否在另一个单元格区域内,这样好进行下一步的操作。可以使用一个简单的VBA自定义函数来实现。

程序代码如下:

代码语言:javascript复制
Public Function blnRange(rng1 As Range, rng2 As Range) As Boolean
   '检查rng1是否在rng2中
   '如果是,则返回True
    Dim rngInterRange As Range
    Set rngInterRange = Application.Intersect(rng1, rng2)
    blnRange= Not rngInterRange Is Nothing
    Set rngInterRange = Nothing
End Function

程序使用了Application对象的Intersect方法,如果rng1代表的区域在rng2中,则返回True,否则返回False。

例如,如果当前选择的单元格处于列B中,则将设置其背景色为红色,否则设置其背景色为绿色,代码如下:

代码语言:javascript复制
Sub test()
    If blnRange(Range(Selection.Address), Columns("B:B")) Then
       Selection.Interior.Color = vbRed
    Else
       Selection.Interior.Color = vbGreen
    End If
End Sub

有时候,一段小小的程序能在编程中起到很大的作用。因此,在学习VBA时,可以收集一些实现特定功能的通用程序,方便要用时拿来就用。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

vba

0 人点赞