设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1994|回复: 8
打印 上一主题 下一主题

这个问题不知道该怎么问

[复制链接]
跳转到指定楼层
1#
发表于 2007-1-3 00:18:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
A表:
序号 数值1 数值2 数值3
1
2
3
4
5
6
7
8
9
B表:
序号 数值1 数值2 数值3
2     10     15    30
3      8      9     2
5      1      4     7
7     20     40    60
9     11      6    49
把B表中序号值等于A表中的序号值时,填入相应的数值
新的A表
序号 数值1 数值2 数值3
1
2     10     15    30
3      8      9     2
4
5      1      4     7
6
7     20     40    60
8
9     11      6    49
就实现这样的效果。
我写了一个相应的宏,但效率极低,运行时间太长,因为A表有500项,B表有300项,运行得20多分钟还没完,麻烦大家给看一下,提个好的建议,多谢了。。。。
Sub zh()
Dim sun1
Dim bobo1, bobo2, bobo3, bobo4, bobo5, bobo6, bobo7
Dim temp1, temp2, temp3
temp3 = 4
For temp1 = 6 To 542
  sun1 = Cells(temp1, 1).Value
  For temp2 = temp3 To 227
    Windows("1.xls").Activate
    bobo1 = Cells(temp2, 1).Value
    bobo2 = Cells(temp2, 3).Value
    bobo3 = Cells(temp2, 4).Value
    bobo4 = Cells(temp2, 5).Value
    bobo5 = Cells(temp2, 6).Value
    bobo6 = Cells(temp2, 7).Value
    bobo7 = Cells(temp2, 8).Value
    Windows("业务状况.xls").Activate
    If Val(sun1) = bobo1 Then
          Cells(temp1, 3).Value = bobo2
          Cells(temp1, 4).Value = bobo3
          Cells(temp1, 5).Value = bobo4
          Cells(temp1, 6).Value = bobo5
          Cells(temp1, 7).Value = bobo6
          Cells(temp1, 8).Value = bobo7
          temp3 = temp3 + 1
          Exit For
    End If

  Next temp2

Next temp1

MsgBox "转换完毕!!!"
end sub

[此贴子已经被作者于2007-1-2 16:21:00编辑过]

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2007-1-3 00:22:00 | 只看该作者
B表:
序号 数值1 数值2 数值3
2     10     15    30
3      8      9     2
5      1      4     7
7     20     40    60
9     11      6    49
把B表中序号值等于A表中的序号值时,填入相应的数值

[此贴子已经被作者于2007-1-2 16:23:36编辑过]

3#
 楼主| 发表于 2007-1-3 00:24:00 | 只看该作者
新的A表
序号 数值1 数值2 数值3
1
2     10     15    30
3      8      9     2
4
5      1      4     7
6
7     20     40    60
8
9     11      6    49
就实现这样的效果。
4#
 楼主| 发表于 2007-1-3 00:25:00 | 只看该作者
我写了一个相应的宏,但效率极低,运行时间太长,因为A表有500项,B表有300项,运行得20多分钟还没完,麻烦大家给看一下,提个好的建议,多谢了。。。。

Sub zh()
Dim sun1
Dim bobo1, bobo2, bobo3, bobo4, bobo5, bobo6, bobo7
Dim temp1, temp2, temp3
temp3 = 4
For temp1 = 6 To 542
  sun1 = Cells(temp1, 1).Value
  For temp2 = temp3 To 227
    Windows("1.xls").Activate
    bobo1 = Cells(temp2, 1).Value
    bobo2 = Cells(temp2, 3).Value
    bobo3 = Cells(temp2, 4).Value
    bobo4 = Cells(temp2, 5).Value
    bobo5 = Cells(temp2, 6).Value
    bobo6 = Cells(temp2, 7).Value
    bobo7 = Cells(temp2, 8).Value
    Windows("业务状况.xls").Activate
    If Val(sun1) = bobo1 Then
          Cells(temp1, 3).Value = bobo2
          Cells(temp1, 4).Value = bobo3
          Cells(temp1, 5).Value = bobo4
          Cells(temp1, 6).Value = bobo5
          Cells(temp1, 7).Value = bobo6
          Cells(temp1, 8).Value = bobo7
          temp3 = temp3 + 1
          Exit For
    End If

  Next temp2

Next temp1

MsgBox "转换完毕!!!"
end sub
5#
 楼主| 发表于 2007-1-3 00:25:00 | 只看该作者
bobo2 = Cells(temp2, 3).Value
    bobo3 = Cells(temp2, 4).Value
    bobo4 = Cells(temp2, 5).Value
    bobo5 = Cells(temp2, 6).Value
    bobo6 = Cells(temp2, 7).Value
    bobo7 = Cells(temp2, 8).Value
    Windows("业务状况.xls").Activate
    If Val(sun1) = bobo1 Then
          Cells(temp1, 3).Value = bobo2
          Cells(temp1, 4).Value = bobo3
          Cells(temp1, 5).Value = bobo4
          Cells(temp1, 6).Value = bobo5
          Cells(temp1, 7).Value = bobo6
          Cells(temp1, 8).Value = bobo7
          temp3 = temp3 + 1
          Exit For
    End If

  Next temp2

Next temp1

MsgBox "转换完毕!!!"
end sub
6#
 楼主| 发表于 2007-1-3 00:26:00 | 只看该作者
Cells(temp1, 8).Value = bobo7
          temp3 = temp3 + 1
          Exit For
    End If

  Next temp2

Next temp1

MsgBox "转换完毕!!!"
end sub
7#
 楼主| 发表于 2007-1-3 00:26:00 | 只看该作者
终于问完了。。。。
8#
发表于 2007-1-3 04:37:00 | 只看该作者
我能想到和你一样。序号要排序,只有唯一值的话加exit for,你都做了。

要不拷到同一个表中处理,表间切换不知道会不会是慢的原因。
9#
发表于 2007-1-3 04:42:00 | 只看该作者
应该是由b表来找a表。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-15 22:31 , Processed in 0.089989 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表