Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2879|回复: 10

[已解决]excel 问题,请高手指教!

[复制链接]
发表于 2011-12-10 23:10 | 显示全部楼层 |阅读模式
我有一些产品名称和编号等资料,现在我想把这些资料做成一个整体,每当我用的时候只要输入编号,相关资料就能自动输入,有没有相关函数或者用VBA能实现?
最佳答案
2011-12-11 00:18
devilavatar 发表于 2011-12-10 23:26
vlookup 只能一个编号对应一个零件,现在我想一个编号对应几个零件

vba
Book1.rar (11.5 KB, 下载次数: 12)

Book1.rar

2.17 KB, 下载次数: 7

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2011-12-10 23:16 来自手机 | 显示全部楼层
用手机上的,没看附件,感觉可以用VLOOKUP函数来做。
回复

使用道具 举报

 楼主| 发表于 2011-12-10 23:26 | 显示全部楼层
liyh67 发表于 2011-12-10 23:16
用手机上的,没看附件,感觉可以用VLOOKUP函数来做。

vlookup 只能一个编号对应一个零件,现在我想一个编号对应几个零件
回复

使用道具 举报

发表于 2011-12-11 00:18 | 显示全部楼层    本楼为最佳答案   
devilavatar 发表于 2011-12-10 23:26
vlookup 只能一个编号对应一个零件,现在我想一个编号对应几个零件

vba
Book1.rar (11.5 KB, 下载次数: 12)

评分

参与人数 1 +3 收起 理由
devilavatar + 3 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2011-12-11 13:11 | 显示全部楼层
Zipall 发表于 2011-12-11 00:18
vba

非常感谢你的指教,我要的就是这种,不过不是很明白代码的意思,如果能解释一下就好了,或者说一下怎样增加数据源数据也好,感激万分!
回复

使用道具 举报

发表于 2011-12-11 13:53 | 显示全部楼层
devilavatar 发表于 2011-12-11 13:11
非常感谢你的指教,我要的就是这种,不过不是很明白代码的意思,如果能解释一下就好了,或者说一下怎样增 ...

Private Sub Worksheet_Change(ByVal Target As Range) '在单元格修改时触发时间
    'On Error Resume Next
    With Target.Cells(1) '如果修改了多个单元格,只对其中第一个判断
        If .Column <> 2 Then Exit Sub '如果修改的不是第2列,退出
        If Len(.Value) = 0 Then Exit Sub '如果填写的是空值,退出
        v = .Value
        With Sheets("数据源")
            r = .Range("a:a").Find(v).Row '在数据源的a列查找填写的产品编号并返回其所在行号
            t = .Cells(r, 3).End(xlDown).Row - r + 1 '返回行数
            arr = .Cells(r, 1).Resize(t, 4).Value '获取该区域的值
        End With
        Application.EnableEvents = False
        .Resize(t, 4) = arr '将值填写到相应区域
        Application.EnableEvents = True
    End With
End Sub

有效性的list是通过定义名称得到的,你可以ctrl+f3看到它.
数据源中在G列追加内容可以扩充list值
数据源中在A:D列添加数据(以空行分隔)可以扩展数据源.

评分

参与人数 1 +3 收起 理由
devilavatar + 3 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2011-12-11 14:36 | 显示全部楼层
Zipall 发表于 2011-12-11 13:53
Private Sub Worksheet_Change(ByVal Target As Range) '在单元格修改时触发时间
    'On Error Resume  ...

虽然还不是很明白代码的意思,但基本上可以解决问题。不过还有一点可以完善就好 ,就是如果我把产品编号删除,相应输入的资料也删除,还有如果输入产品编号时,相应的资料输入是重叠就自动增加行或提示出错。如果可以的话帮解决一下,谢谢!并希望多多指教
回复

使用道具 举报

发表于 2011-12-11 14:48 | 显示全部楼层
devilavatar 发表于 2011-12-11 14:36
虽然还不是很明白代码的意思,但基本上可以解决问题。不过还有一点可以完善就好 ,就是如果我把产品编号删 ...

可以,但要复杂很多.
我想问的是你的记录是逐条追加的? 还是随时修改现有记录的?
回复

使用道具 举报

 楼主| 发表于 2011-12-11 15:17 | 显示全部楼层
本帖最后由 devilavatar 于 2011-12-11 15:18 编辑
Zipall 发表于 2011-12-11 14:48
可以,但要复杂很多.
我想问的是你的记录是逐条追加的? 还是随时修改现有记录的?


不断增加的,产品名称经常相同,不过增加后一般很小改变,是一条一条增加
回复

使用道具 举报

发表于 2011-12-11 15:18 | 显示全部楼层
如果是逐条追加,那么删除和插入的功能可以不要.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-21 13:19 , Processed in 0.229064 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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