ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: caoren

[求助]怎么从下拉菜单中实现快速输入?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-2-17 08:54 | 显示全部楼层
原帖由 18sut 于 2009-2-16 23:19 发表
请问如何能实现在第一张表格所有单元实现这种功能啊,怎么做请指点一下。谢谢!!

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Target.Row < 2 Then Exit Sub
    If Target.Column > 1 Then Exit Sub   3种情况下退出
加这三句的目的是限制其它单元格变更也运行以下的程序,如果不想限制,把这三句去掉就可以了。

TA的精华主题

TA的得分主题

发表于 2009-2-17 08:58 | 显示全部楼层
原帖由 18sut 于 2009-2-17 00:03 发表
hupanshan 老师很热心啊,到处都能看到你回的贴,都是精品,只是我看不明白代码,就是想借用也不会改呀

这就不是一朝一夕的问题了。实际上,VBA的语言还是比较容易懂的,如果你有其它编程语言的基础,学习VBA就很容易。

TA的精华主题

TA的得分主题

发表于 2009-2-27 09:43 | 显示全部楼层

回复 4楼 hupanshan 的帖子

不知可不可以麻烦一下hupanshan 老师指点我一下,教我怎么改代码!不胜感谢!

此代码要应用到工作簿中的某一工作表的某一列,代码要怎么修改!

还有数据源工作表是不是就改一下表名就可以了吗?

我真的很需要它,请在表1代码中用颜色填充标示要改哪个代码!

请hupanshan 老师一定要不吝赐教!我和楼主一定很感谢你的!
我以后一定要好好学习编程语言,再好好学VBA,就可以象hupanshan 老师一样,帮助需要帮助的人!

[ 本帖最后由 思维不定势 于 2009-2-27 09:48 编辑 ]

TA的精华主题

TA的得分主题

发表于 2009-2-27 10:15 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-2-27 13:14 | 显示全部楼层
刚好要用到,谢谢楼主分享

TA的精华主题

TA的得分主题

发表于 2010-1-30 22:48 | 显示全部楼层

请教:如何将一个sheet表中的两个过程合在一起?

请教:如何将一个sheet表中的两个过程合在一起?
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Target.Row < 2 Then Exit Sub
    If Target.Column <> 3 Then Exit Sub
    vl = Target.Value
    If Len(vl) > 1 Then Exit Sub
    Target.Select
    On Error Resume Next
    Set sj = Worksheets("Sheet2")
    ed = sj.[a65536].End(xlUp).Row
    Set rg = sj.Range("a2:a" & ed).Find(vl, LookIn:=xlValues)
    If rg Is Nothing Then Exit Sub
    With Application.CommandBars.Add(Name:="mycell", Position:=msoBarPopup)
        r0 = 1
        r = rg.Row
        Do While r > r0
            r0 = r
            With .Controls.Add(Type:=msoControlButton)
                .Caption = rg.Value
                .OnAction = "bbb"
            End With
            Set rg = sj.Range("a2:a" & ed).FindNext(rg)
            If Not rg Is Nothing Then r = rg.Row
        Loop
    End With
    If Application.CommandBars("Mycell").Controls.Count = 1 Then
        Application.EnableEvents = False
        Selection.Value = Application.CommandBars("Mycell").Controls(1).Caption
        Application.EnableEvents = True
    Else
        Application.CommandBars("Mycell").ShowPopup
    End If
    Application.CommandBars("Mycell").Delete
      
End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Target.Row < 2 Then Exit Sub
    If Target.Column <> 4 Then Exit Sub
    vl = Target.Value
    If Len(vl) > 3 Then Exit Sub
    Target.Select
    On Error Resume Next
    Set sj = Worksheets("种类")
    ed = sj.[a65536].End(xlUp).Row
    Set rg = sj.Range("a2:a" & ed).Find(vl, LookIn:=xlValues)
    If rg Is Nothing Then Exit Sub
    With Application.CommandBars.Add(Name:="mycell", Position:=msoBarPopup)
        r0 = 1
        r = rg.Row
        Do While r > r0
            r0 = r
            With .Controls.Add(Type:=msoControlButton)
                .Caption = rg.Value
                .OnAction = "bbb"
            End With
            Set rg = sj.Range("a2:a" & ed).FindNext(rg)
            If Not rg Is Nothing Then r = rg.Row
        Loop
    End With
    If Application.CommandBars("Mycell").Controls.Count = 1 Then
        Application.EnableEvents = False
        Selection.Value = Application.CommandBars("Mycell").Controls(1).Caption
        Application.EnableEvents = True
    Else
        Application.CommandBars("Mycell").ShowPopup
    End If
    Application.CommandBars("Mycell").Delete
End Sub

表格.rar

14.92 KB, 下载次数: 23

TA的精华主题

TA的得分主题

发表于 2010-1-30 22:56 | 显示全部楼层

请高手指点

请高手帮忙,真的很急。

TA的精华主题

TA的得分主题

发表于 2010-1-31 08:11 | 显示全部楼层
原帖由 tawangym 于 2010-1-30 22:48 发表
请教:如何将一个sheet表中的两个过程合在一起?
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Target.Row < 2 Then Exit Sub
    If Target.Colu ...

改程序难
改别人的程序更是难上加难
你最好还是讲清楚你想让程序实现的功能。

TA的精华主题

TA的得分主题

发表于 2010-1-31 16:00 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

合并两个过程产生二义性问题

先谢谢hupanshan老师。
我想在《代理商提货明细名称》表中的名称或种类一栏分别输入《名称》和《种类》表中的一个或几个字,显示出相应表格中全部的名称。
按照您教的办法我可以单独显示一栏信息如附件《在一个栏显示—名称一栏》、《在一个栏显示—种类一栏》,但是当将个过程放在一起时,提示“发现二义性的名称”。

附件.rar

51.84 KB, 下载次数: 15

TA的精华主题

TA的得分主题

发表于 2010-1-31 18:44 | 显示全部楼层

期待解决

有人解决吗?期待
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 11:28 , Processed in 0.040717 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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