作者ptguitar (佩蒂吉他)
看板Office
标题[算表] 合并储存格依照旁边的判断
时间Wed Aug 1 11:57:57 2018
软体:excel
版本:2007
我有一个表
A x
A x
A y
B y
B x
C k
C k
C x
D x
D x
D y
想要储存格合并的时候
B栏位依照A栏位合并
现在的巨集会变成B栏位的就合并一起
档案如附件:
https://drive.google.com/open?id=1HC3AC-tunGI2MTeLfxkEtE_f0dcT0ZeL
我用巨集如下
Dim xR As Range, xH As Range
For Each xR In Range([A1], [A65536].End(xlUp))
If xR <> xR(0) Then Set xH = xR
If xR <> xR(2) Then Range(xR, xH).Merge
Next
For Each xR In Range([b1], [b65536].End(xlUp))
If xR <> xR(0) Then Set xH = xR
If xR <> xR(2) Then Range(xR, xH).Merge
Next
不知道这块要怎麽改
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.250.67.78
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1533095880.A.550.html
2F:→ soyoso: 连结为a栏的部分,但应先从b栏判断;b栏和a栏差别上为b栏 08/01 12:13
3F:→ soyoso: 会多个或於a栏下方储存格是否相同,不相同的话则合并储存 08/01 12:15
4F:→ soyoso: 格 08/01 12:15
5F:→ ptguitar: 感谢S大 实在太强大了 还要研究看看 08/01 13:52
後来研究似乎还是没有达到我效果
档案如下:
https://drive.google.com/open?id=1mBYyWgj9aLnM88gBGQKpnctb-b-dThRG
※ 编辑: ptguitar (60.250.67.78), 08/01/2018 14:11:29
※ 编辑: ptguitar (60.250.67.78), 08/01/2018 14:28:22
6F:→ soyoso: 连结内无看到b栏的写法,也请附上,才清楚没有达到效果的 08/01 14:47
7F:→ soyoso: 原因 08/01 14:47
我後来用自己比较容易理解方式来写
感谢S大提供想法
Sub test()
Dim row1 As Integer
ActiveSheet.Select
Application.DisplayAlerts = False
row1 = Range("C65536").End(xlUp).Row
For i = row1 To 2 Step -1
If Cells(i, 2).Value = Cells(i - 1, 2).Value And Cells(i, 1).Value =
Cells(i - 1, 1) Then
Range(Cells(i - 1, 2), Cells(i, 2)).Merge
End If
Next i
For i = row1 To 2 Step -1
If Cells(i, 1).Value = Cells(i - 1, 1).Value Then
Range(Cells(i - 1, 1), Cells(i, 1)).Merge
End If
Next i
Application.DisplayAlerts = True
End Sub
※ 编辑: ptguitar (60.250.67.78), 08/01/2018 15:02:29
※ 编辑: ptguitar (60.250.67.78), 08/01/2018 15:03:26
9F:→ soyoso: 上述为回文的想法用於for..next;测试以原po所贴的巨集结 08/01 15:17
10F:→ soyoso: 果应也可以达成 08/01 15:17
11F:→ soyoso: 如以回文想法用於for each..next的话 08/01 15:17
13F:→ ptguitar: for each的方式看网路写法 不过不太好懂 再来研究看看 08/01 15:26
14F:→ soyoso: 以原文范例for..next如要正序写法,可配合工作表函数 08/01 15:29