查找重疊的單元格區域——Intersect方法

      網友投稿 842 2025-03-31

      查找重疊的單元格區域——Intersect方法

      如果我們想知道兩個單元格區域是否有共同的單元格,或者要知道兩個區域中哪些是共有單元格,即兩個單元格區域重合的部分,就可以使用Intersect方法。

      如下圖所示,很容易看出單元格區域A1:C5與B3:E8相重合的區域是B3:C5,也就是紅色單元格部分。

      下面的代碼獲取上圖中兩個單元格區域重合的部分,并賦值給變量rngIntersect,最后顯示重合區域的單元格地址。

      Sub testIntersect1()

      Dim rngIntersect As Range

      ‘獲取相重合的交叉區域

      Set rngIntersect =Intersect(Range(“A1:C5”), Range(“B3:E8”))

      MsgBox “A1:C5與B3:E8相重合的區域是:”& rngIntersect.Address

      End Sub

      Intersect方法的語法

      表達式.Intersect(Arg1,Arg2,Arg3,…,Arg30)

      說明:

      表達式是一個代表Application對象的變量,表明Intersect方法屬于Application對象,在Excel中就是指Excel應用本身。因此,通常在代碼中可以省略前面的Application限定,直接書寫Intersect。例如我們在本文的示例代碼中均省略了前面的Application。

      必須指定至少兩個Range對象作為其參數。

      其返回值為Range對象。

      我們來看看一些例子,進一步了解Intersect方法及其應用。

      示例:判斷兩個單元格區域是否有重合

      下面的例子用來判斷一個區域是否包含另一個區域,即一個區域是另一個區域的子區域。代碼如下:

      Sub testIntersect2()

      Dim rng1 As Range, rng2 As Range

      Dim rng As Range

      ‘設置要測試的兩個區域

      Set rng1 = Range(“A1:D9”)

      Set rng2 = Range(“A1:E11”)

      ‘獲取兩個區域相重合的區域并存儲在變量中

      Set rng = Intersect(rng1, rng2)

      ‘判斷兩個區域是否存在重合的區域

      If Not rng Is Nothing Then

      ‘判斷兩個區域之間的包含關系

      If rng.Address = rng1.Address Then

      MsgBox rng2.Address & “包含”& rng1.Address

      Else

      MsgBox rng1.Address & “包含”& rng2.Address

      End If

      Else

      MsgBox rng1.Address & “和” &rng2.Address & “區域無重疊.”

      End If

      End Sub

      下圖為不同區域的測試結果。(目前,我們還沒有學習到與用戶交互,所以采用“硬編碼”的形式直接設置兩個區域rng1和rng2。)

      示例:用VBA實現保護單元格功能

      下面是一個示例。結合運用Union方法和Intersect方法,禁止用戶選擇工作表中B1:B5和C6:C10這兩塊單元格區域,這樣就可以防止用戶修改這兩塊區域中的數據。代碼如下:

      Private SubWorksheet_SelectionChange(ByVal Target As Range)

      Dim rngForbidden As Range

      ‘設置禁止操作的單元格區域

      Set rngForbidden =Union(Range(“B1:B5”), Range(“C6:C10”))

      ‘如果所選擇的單元格沒有處于禁止操作的單元格區域中,則退出程序

      If Intersect(Target, rngForbidden) IsNothing Then Exit Sub

      ‘選擇A1并發出警告

      Range(“A1”).Select

      MsgBox “不能選擇” &rngForbidden.Address & “中的單元格.”, vbCritical

      End Sub

      每當用戶在與包含該事件過程的模塊相關聯的工作表中選擇單元格區域時,就會觸發工作表的Worksheet_SelectionChange事件過程。代碼中,首先使用Union方法定義了由兩個非連續單元格區域組成的禁止操作的區域,然后使用Intersect方法檢查所選擇的區域與禁止操作的區域是否有重合,并作為If語句的判斷條件,如果沒有重合則退出事件過程,用戶正常操作,并不會感覺到什么;如果有重合,則光標定位到單元格A1并給出一條警告消息。

      注:簡單地說,工作表事件就是用戶操作工作表時,工作表做出的相應響應。關于工作表事件將在以后詳細介紹。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:怎樣將網上下載的文本文檔數據轉換為WPS表格文檔形式(wps表格里的數據怎么轉換成文本文檔)
      下一篇:怎么把文件發送到微信(怎么把文件發送到微信傳輸助手)
      相關文章
      亚洲日本中文字幕天堂网| 亚洲国产aⅴ综合网| 亚洲AV无码一区二区三区电影| 亚洲精品免费观看| 亚洲综合国产精品第一页| 国产成人亚洲精品电影| 亚洲精品无码少妇30P| 亚洲第一街区偷拍街拍| 亚洲av无码专区青青草原| 亚洲爆乳无码专区www| 亚洲欧美黑人猛交群| 亚洲第一成年网站视频| 亚洲精品色播一区二区| 亚洲av成人一区二区三区观看在线| 亚洲欧美日韩中文二区| 亚洲AV永久无码精品网站在线观看| 亚洲最大天堂无码精品区| 成人亚洲国产va天堂| 亚洲欧美日本韩国| 伊人久久亚洲综合影院| 亚洲综合色成在线播放| 亚洲人成色777777在线观看| 国产v亚洲v天堂无码网站| 久久91亚洲精品中文字幕| 亚洲视频免费在线播放| 亚洲人成网站日本片| 中文日韩亚洲欧美制服| 久久亚洲精品高潮综合色a片| 相泽南亚洲一区二区在线播放| 大胆亚洲人体视频| 国产亚洲AV夜间福利香蕉149 | 国产亚洲精品自在久久| 亚洲女同成av人片在线观看| 亚洲国产精品VA在线观看麻豆| 亚洲国产精品久久久久久| 亚洲人成激情在线播放| 亚洲精品精华液一区二区| 亚洲成av人片一区二区三区| 亚洲人成网77777色在线播放| 亚洲国产综合精品中文第一区| 亚洲另类精品xxxx人妖|