Excel VBA中單元格的合並與拆分


對於合並單元格這里提供”從上到下“和“從下到上”合並單元格兩種方式,”從上到下“的方法需要記錄當前列有多少個相同的單元格和判斷相應的單元格是否是合並單元格,過程相對來說繁瑣一些,“從下到上”的方法則相對簡單一些 ,代碼量相對來說也比較少。
1.”從上到下“的方法

Sub 從上到下合並單元格()
'
Dim i, l, m As Integer
'禁止彈出提示的對話框
Application.DisplayAlerts = False

k% = InputBox("請輸入合並單元格所在的列")

'*****************在1995-2006年,excel工作簿包含65536行,但現在的office 2007中工作簿包含1048576行,
'*****************從A列最后一行向上找,找到有數據的行為止
l = [A65536].End(xlUp).Row 'l記錄當前表格的最后一行的行數

For i = 1 To l

'判斷該單元格是否是合並單元格

If Cells(i, k).MergeCells = True Then
If Cells(i - m, k) = Cells(i + 1, k) Then
m = m + 1 'M代表一個有多少個相同的單元格
Else
m = 0
End If
Else
m = 0
If Cells(i, k) = Cells(i + 1, k) Then
m = m + 1
End If
End If
Range(Cells(i, k), Cells(i + m, k)).Merge
Next
Application.DisplayAlerts = True
End Sub
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2.”從下到上“的方法

Sub 從下到上合並單元格()
Dim i, l As Integer
'禁止彈出提示的對話框
Application.DisplayAlerts = False

k% = InputBox("請輸入合並單元格所在的列")
'*****************在1995-2006年,excel工作簿包含65536行,但現在的office 2007中工作簿包含1048576行,
'*****************從A列最后一行向上找,找到有數據的行為止
l = [A65536].End(xlUp).Row 'l記錄當前表格的最后一行的行數

For i = l To 2 Step -1
If Cells(i, k) = Cells(i - 1, k) Then
Range(Cells(i, k), Cells(i - 1, k)).Merge
End If
Next
Application.DisplayAlerts = True
End Sub
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
單元格的拆分
當單元格進行合並之后就是如何進行拆分,拆分和合並原理大致相似,就是先判斷是否是合並單元格,然后獲取合並單元格的數目,進行拆分和填充。相應代碼如下:
Sub 拆分單元格()

Dim i, l, m As Integer

'禁止彈出提示的對話框
Application.DisplayAlerts = False

k% = InputBox("請輸入拆分單元格所在的列")
'*****************在1995-2006年,excel工作簿包含65536行,但現在的office 2007中工作簿包含1048576行,
'*****************從A列最后一行向上找,找到有數據的行為止
l = [A65536].End(xlUp).Row 'l記錄當前表格的最后一行的行數
For i = 1 To l
'判斷該單元格是否是合並單元格
If Cells(i, k).MergeCells = True Then
m = Cells(i, k).MergeArea.Count '記錄合並單元格的個數
Range(Cells(i, k), Cells(i + m - 1, k)).UnMerge ‘拆分單元格
Range(Cells(i, k), Cells(i + m - 1, k)).FillDown ’填充單元格
i = i + m - 1
End If
Next
Application.DisplayAlerts = True
End Sub
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
`
————————————————
版權聲明:本文為CSDN博主「snow__wei」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/snow__wei/article/details/85389962


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM