标题:[求助]如何在ECEXL中用宏实现功能?
只看楼主
yuanrg
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-4-11
 问题点数:0 回复次数:10 
[求助]如何在ECEXL中用宏实现功能?

有一表如下:
Cell PN_Group
105001 1
105002 1
105003 1
105004 2
105005 2
106001 2

想在ECEXL表中用宏实现转换为如下表:
Cell PN_Group PN_Group
105001 105002 1
105001 105003 1
105002 105001 1
105002 105003 1
105003 105001 1
105003 105002 1
105004 105005 2
105004 106001 2
105005 105004 2
105005 106001 2
106001 105004 2
106001 105005 2
请问如何实现?
如果想转换为如下表,又如何实现?
Cell PN_Group PN_Group
105001 105001 1
105001 105002 1
105001 105003 1
105002 105002 1
105002 105001 1
105002 105003 1
105003 105003 1
105003 105001 1
105003 105002 1
105004 105004 1
105004 105005 2
105004 106001 2
105005 105005 2
105005 105004 2
105005 106001 2
106001 106001 2
106001 105004 2
106001 105005 2
先谢谢有哪位兄弟解答!

搜索更多相关主题的帖子: ECEXL Group Cell 
2007-04-11 11:40
huangwy
Rank: 1
等 级:新手上路
威 望:2
帖 子:297
专家分:0
注 册:2007-3-23
得分:0 
太多的东西要做
你可以把Excel的Vba帮助装入电脑,
你就能学到这些东西
默认情况下,Vba帮助是不装入电脑的
2007-04-11 12:13
yuanrg
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-4-11
得分:0 
回复:(yuanrg)[求助]如何在ECEXL中用宏实现功能?
Thks,先试一下再说
2007-04-11 13:34
Joforn
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1242
专家分:122
注 册:2007-1-2
得分:0 
回复:(yuanrg)[求助]如何在ECEXL中用宏实现功能?
fJx0OsOx.rar (9.64 KB) [求助]如何在ECEXL中用宏实现功能?



'在表中新建一个按钮,下面是按钮代码:
Private Sub CommandButton1_Click()
Dim Cell1() As Long, Cell2() As Long
Dim I As Long, K As Long, Row1 As Long, Row2 As Long
K = Range("A65535").End(xlUp).Row

ReDim Cell1(0): ReDim Cell2(0)
For I = 1 To K
If Cells(I, 2).Value = 1 Then
ReDim Preserve Cell1(UBound(Cell1) + 1)
Cell1(UBound(Cell1)) = I
ElseIf Cells(I, 2).Value = 2 Then
ReDim Preserve Cell2(UBound(Cell2) + 1)
Cell2(UBound(Cell2)) = I
End If
Next
I = 1
Row1 = 2
Row2 = 2
Do While I <= UBound(Cell1)
K = 1
Do While K <= UBound(Cell1)
Cells(Row2, 6).Value = Cells(Cell1(I), 1).Value
Cells(Row2, 7).Value = Cells(Cell1(K), 1).Value
Cells(Row2, 8).Value = 1
Row2 = Row2 + 1
If I <> K Then
Cells(Row1, 3).Value = Cells(Cell1(I), 1).Value
Cells(Row1, 4).Value = Cells(Cell1(K), 1).Value
Cells(Row1, 5).Value = 1
Row1 = Row1 + 1
End If
K = K + 1
Loop
I = I + 1
Loop
I = 1
Do While I <= UBound(Cell2)
K = 1
Do While K <= UBound(Cell2)
Cells(Row2, 6).Value = Cells(Cell2(I), 1).Value
Cells(Row2, 7).Value = Cells(Cell2(K), 1).Value
Cells(Row2, 8).Value = 2
Row2 = Row2 + 1
If I <> K Then
Cells(Row1, 3).Value = Cells(Cell2(I), 1).Value
Cells(Row1, 4).Value = Cells(Cell2(K), 1).Value
Cells(Row1, 5).Value = 2
Row1 = Row1 + 1
End If
K = K + 1
Loop
I = I + 1
Loop
End Sub

VB QQ群:47715789
2007-04-11 13:49
yuanrg
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-4-11
得分:0 
回复:(Joforn)回复:(yuanrg)[求助]如何在ECEXL中...

4 楼兄弟,先谢了,不过还有一个问题,如果能把第3列的PN_Group(1,2.....N)改为由变量的话,如何处理,因为我在列表中只是举例而尔(1,2,....)?谢谢!我不知道我表达清楚了没有?

2007-04-11 15:07
yuanrg
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-4-11
得分:0 

4 楼兄弟,我把表发给你,帮我改一下,好象有点问题?先谢了!

soBKI625.rar (18.96 KB) [求助]如何在ECEXL中用宏实现功能?


2007-04-11 15:15
Joforn
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1242
专家分:122
注 册:2007-1-2
得分:0 
我给你例程是让你学习方法的……
如果每次你只想得到完整的程序,自己都不看看代码怎么能学得会呢?

VB QQ群:47715789
2007-04-11 21:40
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
得分:0 
以下是引用Joforn在2007-4-11 21:40:29的发言:
我给你例程是让你学习方法的……
如果每次你只想得到完整的程序,自己都不看看代码怎么能学得会呢?

说得是


/images/2011/147787/2011051411021524.jpg" border="0" />
2007-04-11 21:57
gcwen
Rank: 1
等 级:新手上路
帖 子:67
专家分:0
注 册:2006-11-6
得分:0 
Joforn写程序有个习惯,总喜欢写cells(x,y).value; 我觉得后面那个.value可以不要吧。
2007-04-12 12:14
Joforn
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1242
专家分:122
注 册:2007-1-2
得分:0 
以下是引用gcwen在2007-4-12 12:14:44的发言:
Joforn写程序有个习惯,总喜欢写cells(x,y).value; 我觉得后面那个.value可以不要吧。

这是为了更好的区分而已,你不用也行。


VB QQ群:47715789
2007-04-12 16:42



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-130964-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.137992 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved