Excel VBA中,如何判斷兩個不同單元格是否在同一合併的單元格中

時間 2022-02-08 21:10:52

1樓:魚木混豬喲

可以用下面的**實現(假設要判斷的兩個單元格為a1和b1):

sub main()

set a= range("a1").mergeareaset b = range("a1").mergeareaif a.

address = b.address thenmsgbox "同一合併區域"

else

msgbox "不是同一合併區域"

end if

end sub

這裡用到的原理,是判斷兩個單元格合併區域的位址是否一致。

關於此例中用到的mergearea的相關知識:

mergearea:返回乙個 range物件,該物件代表包含指定單元格的合併區域。如果指定的單元格不在合併區域內,則該屬性返回指定的單元格。唯讀。variant 型別。

expression.mergearea

expression 必需。該表示式返回「應用於」列表中的物件之一。

說明mergearea屬性只應用於單個單元格區域。

本示例為包含單元格 a3 的合併區域賦值:

set ma = range("a3").mergeareaif ma.address = "$a$3" thenmsgbox "not merged"

else

ma.cells(1, 1).value = "42"

end if

2樓:一百℃豬

用 mergearea 屬性返回合併的區域,

然後判斷各個單元格是否在上述區域內即可

3樓:匿名使用者

比如 a1~a5合併成a1

判斷b1,c1是否在a1中

if instr(1,a1,b1)>0 then msgbox("b1在a1中存在")

if instr(1,a1,c1)>0 then msgbox("c1在a1中存在")

if (instr(1,a1,b1)>0) * (instr(1,a1,c1)>0) then msgbox("b1、c1在a1中存在")

4樓:匿名使用者

使用mergearea屬性獲取合併區域物件,再用address屬性得到它們的位址,如果相同就是在同一合併區域。

例sub c()

set s = range("a1").mergeareaset n = range("b1").mergeareaif s.

address = n.address thenmsgbox "同一合併區域"

else

msgbox "不在同一合併區域"

end if

end sub

vba判斷excel選擇區域是否有合併單元格

5樓:魚木混豬喲

軟體版本:office2013

舉例說明如下:

1.alt+f11,輸入如下**:

2.返回excel中,選擇乙個區域,按下alt+f8,點選執行:

3.如果選擇區域中有合併單元格,就會顯示如下:

4.如沒有,則顯示如下:

6樓:匿名使用者

選中要檢查的區域,然後執行test巨集就可以了,效果如下圖:

option explicit

sub test()

dim rng as range

for each rng in selectionif rng.mergecells thenmsgbox "所選區域存在合併過的單元格"

exit for

end if

next rng

end sub

7樓:匿名使用者

sub admin()

'要想判斷合併單元格,得分為兩種情況:

'①:當前選中的單元格為合併單元格;  selection.mergecells = true

'②:選區內有合併單元格; selection.mergecells =null 即 isnull(selection.mergecells)=true

if selection.mergecells or isnull(selection.mergecells) then

msgbox "選擇區域有合併單元格"

else

msgbox "選擇區域沒有合併單元格"

end if

end sub

執行上面的程式即可

8樓:匿名使用者

sub 判斷合併單元格()

dim rng as range

for each rng in selectionif rng.mergecells = true thenmsgbox "選定的區域中包含合併單元格"

exit for

end if

next

msgbox "選定區域中沒有合併單元格"

end sub

先選定乙個單元格區域,然後執行該vba

excel,vba中如何獲取 合併單元格的值 30

9樓:智慧型小白菜

1、   開啟乙個excel的檔案,在**中輸入簡單的**,比如學生成績**。

2、回  接著,滑鼠左鍵單擊【開答發工具】選單標籤,在vba控制項下拉列表中,並選擇按鈕控制項。

3、   然後,在**中繪製出按鈕控制項,並修改控制項名稱。

4、 接著,滑鼠左鍵單擊【檢視**】按鈕。

5、  然後,在**視窗中輸入vba語句,比如輸入定義變數語句,並選擇字串型別。

6、   接著,在**視窗中輸入讀取單元格的vba語句。

7、最後,在設計視窗上,滑鼠左鍵單擊按鈕,可以看到**中的,通過vba程式讀取資料,並輸出到右邊的單元格中,顯示出資料了,通過這樣的操作,就可以用vba讀取合併單元格資料了。

10樓:匿名使用者

合併後的單元格的值實際仍只儲存在第乙個子單元格中(即左上角的那個單元格),例如:a1:c3,這九個單元格合併後,合併後的值,仍只存在於a1中。

所以獲取range("a1")單元格的值即可

11樓:匿名使用者

合併後就是a1了,a2應該沒資料了

12樓:匿名使用者

思路:1、在需copy要讀數的區域內迴圈

2、在迴圈體內首先判斷該單元格是否為合併單元格,

是,讀取合併區域的第乙個單元格的值,即合併單元格的值,並作處理或儲存在某單元格,跳出迴圈;

否,直接讀取單元格的值,並作處理或儲存在某單元格;

下面是vba語句,定義 r,c 是增強程式的通用性,請視具體情況修改:

sub a()

dim r as integer '行號

dim c as integer '列號

r = 2

c = 1

if cells(r, c).mergecells then '是否是合併單元格

debug.print cells(r, c).mergearea.cells(1, 1) '是,列印合併區域的第乙個單元格的值,即合併單元格的值

else

debug.print cells(r, c) '否,列印單元格的值

end if

'可把if語句塊放在迴圈中

end sub

excel中如何用巨集判斷是否是合併單元格,以及合併的行數或列數?

13樓:魚木混豬喲

**如下:

sub main()

for i = 1 to range("a1").end(xldown).row'取a列最大行數,並從1到最大行數迴圈

if range("a" & i).mergecells = true then'如果單元格為合併單元格

for j = 1 to range("a" & i).mergearea.count'從1到合併單元格的數量迴圈

cells(i + j - 1, 3) = cells(i, 1) & cells(i + j - 1, 2)'第三列等於第一列第一行合併上第二列對應各行

next j

else'如果不是合併單元格

cells(i, 3) = cells(i, 1) & cells(i, 2)'第三列等於第一列合併第二列

end if

next i

end sub

詳細操作步驟如下:

資料來源alt+f11,雙擊sheet1,在空白vba設計區域,複製上述**,並點選執行,或者按f5

執行結果如下:

14樓:木葉球

在c列輸這個公式看看效果:

如果你真實環境下,a列和b列的位元組數是固定的話,我建議可以試試。只要根據實際情況下a列的位元組數調整left函式的引數就可以了。

有疑問的話,可以再問。

注:為了簡化公式,這個函式從第二行開始有效。

15樓:匿名使用者

一看就知道a5到a7是合併單元格 還有c1到c7也是合併。 你認真看下 那些淺顏色格仔不見了 就是合併了 看a 、b兩行的格式 就知道c那一行業是合併的 。明白嗎?

16樓:

我有個其他的思路,你在c列輸這個公式看看效果:

如果你真實環境下,a列和b列的位元組數是固定的話,我建議可以試試。只要根據實際情況下a列的位元組數調整left函式的引數就可以了。

有疑問的話,可以再問。

注:為了簡化公式,這個函式從第二行開始有效。

bat中如何判斷兩個變數是否相等

if用於條件判斷,適用於以下情形 1 判斷驅動器 檔案或資料夾是否存在,用 if exist 語句 2 判斷某兩個字串是否相等,用 if 字串1 字串2 語句 3 判斷某兩個數值是否相等,用 if 數值1 equ 數值2 語句 4 判斷某個變數是否已經被賦值,用 if defined str 語句 ...

php中兩個時間如何相減,php中兩個時間相減怎麼得到年數

可以先將時間轉化為時間戳進行加減,然後在轉化為時間 a date h i s b date h i s strtotime 50 second aa strtotime b strtotime a echo date h i s aa php 中的 strtotime 函式可以實現 strtotim...

VB怎樣判斷兩個文字框中的內容,vb如何比較兩個文字框內容

就是相當於乙個打字測試程式。可以將文字text1內容用 mid txt,i,1 賦值到乙個陣列中,第二個文字text2輸入同時 change 也賦值到另乙個陣列中,再同時用if 比較。private sub text2 change on error resume next dim s1 as st...

怎麼判斷兩個人是不是在一起了,怎麼判斷兩個人是否適合在一起?

按照現在的情況來判斷兩個人大概率在一起了,即使沒在一起也只差臨門一腳了,因為現在兩個人已經處於曖昧階段了,吃東西還可以理解,撫摸頭髮就代表即使沒表白都預設在一起了,不要看之間的情況,任何兩個人在一起都有個追求的過程,之間拉椅子女的不高興,說明還沒拿下,現在的情況經過這段時間的發展,男的已經成功拿下這...

怎麼判斷兩個燈泡是不是併聯

從你的提問我認為你是指在電路圖要如何判斷,不知對否?下面提供幾種方法 1 看幾條線路?一條 串 2 拿下一燈泡 該處為開路 閉合電路,看另乙個是否工作?仍然工作 並 3 拿一根導線,與其中乙隻燈泡併聯 此處短路 電流繞路,此路不通 看另一是否工作?仍然工作 串。切記 有危險,在圖中可以,實際電路甚用...