第一章 入門篇
1.22 union與intersect
union與intersect就是單元格區域的并集與交集。
有時候我們需要處理的單元格,都在不同的區域,但我們需要對它們進行相同的操作,這個時候可以用Union把它們連接起來成為一個區域,從而實現對多個非連續區域一起進行操作。它的語法是這樣的:
union(區域1,區域2,區域3......)
union語句最多可以對30個區域進行連接。
intersect則返回單元格區域的交集,它的語法是這樣的:
intersect(區域1,區域2,區域3......)
例句:
union(Cells(2, 1), Cells(4, 1), Cells(6, 1), Cells(8, 1))
'把Cells(2, 1)、Cells(4, 1)、 Cells(6, 1)和Cells(8, 1)四個單元格合并成一個區域,也就是下圖中藍色的部分。
intersect(Range("d4:j12"), Range("f1:h16"))
'獲得Range("d4:j12")和Range("f1:h16")兩個區域的交集,也就是下圖中塗綠色的部分。
小程序:
把下表中資産名稱為"音響設備"的整行信息連同表頭,拷貝到[k1]開頭的單元格區域,填充顔色變為紅色,并統計它們的原值合計數和平均值:
卡片号 |
資産名稱 |
建卡 |
原值 |
淨值 |
00007933 |
空調 |
2007-12-31 |
498720.00 |
14961.60 |
00007934 |
台式電腦 |
2007-12-31 |
35670.00 |
1070.10 |
00012189 |
音響設備 |
2007-12-31 |
12420.00 |
372.60 |
00014439 |
音響設備 |
2008-06-11 |
6800.00 |
204.00 |
00014437 |
音響設備 |
2008-06-11 |
6800.00 |
204.00 |
00014436 |
音響設備 |
2008-06-11 |
6800.00 |
204.00 |
00032579 |
台式微機 |
2010-12-29 |
6100.00 |
183.00 |
00032578 |
台式微機 |
2010-12-29 |
6100.00 |
183.00 |
00034441 |
電視機 |
2011-07-07 |
15600.00 |
468.00 |
00047157 |
空調 |
2012-09-11 |
5700.00 |
171.00 |
00047156 |
空調 |
2012-09-11 |
5700.00 |
171.00 |
00049661 |
監控設備 |
2012-12-05 |
8000.00 |
240.00 |
00049664 |
金庫門 |
2012-12-05 |
76000.00 |
2280.00 |
00059257 |
筆記本式微機 |
2012-12-30 |
5700.00 |
171.00 |
00060654 |
監控設備 |
2012-12-30 |
24250.00 |
727.50 |
Sub union與intersect()
Dim ss As Range, i%, a&, b&
Set ss = [b1].offset(0, -1).resize(1, 5)
'先把表頭賦值給ss變量
For i = 2 To 16
If Cells(i, 2).Value = "音響設備" Then
Set ss = union(ss, Cells(i, 2).offset(0, -1).resize(1, 5))
'把每一個符合條件的單元格,先左移一列,然後擴展到整行,再用union語句把ss變量與新行連接成一個區域。
End If
Next
ss.Copy [k1]
ss.Interior.ColorIndex = 3
' 對區域執行拷貝和塗紅操作。
a = Application.Sum(intersect(ss, Range("d:d")))
b = Application.Average(intersect(ss, Range("d:d")))
'對區域和原值列(d列)的交集執行求和與求平均值操作。
MsgBox "選中設備的原值合計為" & a & "元"
MsgBox "選中設備的原值平均值為" & b & "元"
End Sub
往期精彩回顧:
學習VBA,報表做到飛 第一章 入門篇 1.21 specialcells語句
學習VBA,報表做到飛 第一章 入門篇 1.20 Replace語句
學習VBA,報表做到飛 第一章 入門篇 1.19 FindNext語句
我是雲飛揚,職場财會人員,願與大家分享表格制作和數據統計分析的技巧與方法,希望大家的工作更便捷,更輕松!
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!