| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 577 人关注过本帖
标题:[求助]如何在ECEXL中用宏实现功能?
收藏  订阅  推荐  打印 
yuanrg
Rank: 1
等级:新手上路
帖子:9
积分:190
注册:2007-4-11
[求助]如何在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-4-11 11:40
huangwy
Rank: 3Rank: 3
等级:中级会员
威望:2
帖子:296
积分:3060
注册:2007-3-23

太多的东西要做
你可以把Excel的Vba帮助装入电脑,
你就能学到这些东西
默认情况下,Vba帮助是不装入电脑的
2007-4-11 12:13
yuanrg
Rank: 1
等级:新手上路
帖子:9
积分:190
注册:2007-4-11
回复:(yuanrg)[求助]如何在ECEXL中用宏实现功能?

Thks,先试一下再说
2007-4-11 13:34
Joforn
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:20
帖子:1202
积分:12728
注册:2007-1-2
回复:(yuanrg)[求助]如何在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
附件: 只有本站会员才能下载或查看附件,请您 登录注册
2007-4-11 13:49
yuanrg
Rank: 1
等级:新手上路
帖子:9
积分:190
注册:2007-4-11
回复:(Joforn)回复:(yuanrg)[求助]如何在ECEXL中...

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

2007-4-11 15:07
yuanrg
Rank: 1
等级:新手上路
帖子:9
积分:190
注册:2007-4-11

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


附件: 只有本站会员才能下载或查看附件,请您 登录注册
2007-4-11 15:15
Joforn
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:20
帖子:1202
积分:12728
注册:2007-1-2

我给你例程是让你学习方法的……
如果每次你只想得到完整的程序,自己都不看看代码怎么能学得会呢?
2007-4-11 21:40
ioriliao
Rank: 12Rank: 12Rank: 12
来自:广东
等级:贵宾
威望:29
帖子:2122
积分:23963
注册:2006-11-30

以下是引用Joforn在2007-4-11 21:40:29的发言:
我给你例程是让你学习方法的……
如果每次你只想得到完整的程序,自己都不看看代码怎么能学得会呢?

说得是


105本高清PDF电子书 :http://www.cnblogs.com/ioriliao/archive/2008/10/20/1315343.html
VB爱好者1号群:31556786
2007-4-11 21:57
gcwen
Rank: 2
等级:注册会员
帖子:67
积分:770
注册:2006-11-6

Joforn写程序有个习惯,总喜欢写cells(x,y).value; 我觉得后面那个.value可以不要吧。
2007-4-12 12:14
Joforn
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:20
帖子:1202
积分:12728
注册:2007-1-2

以下是引用gcwen在2007-4-12 12:14:44的发言:
Joforn写程序有个习惯,总喜欢写cells(x,y).value; 我觉得后面那个.value可以不要吧。

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

2007-4-12 16:42
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.074011 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved