没有找到dllregisterserver输入点_VBA | Excel居然能猜到我要输入的内容

我的目标:让中国的大学生走出校门的那一刻就已经具备这些office技能,让职场人士能高效使用office为其服务。支持我,也为自己加油!

平常我们在搜索引擎中输入内容时,下面就会弹出由输入内容引出的相关词条,如:

044ccc6bcc0ade6e5f7d1f16470265bb.gif

那在Excel里可以实现这种效果吗?

答案当然是“”。

先来看下我做出来的效果:

279d588352898a24a5928e5d0476d45e.gif

上面的案例中用了两个控件,文本框和列表框。

具体思路:

1、创建一个文本框和一个列表框,列表框能根据文本框输入的内容自动把相关数据列出来。

代码如下:

Private Sub 输入_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

Dim rng As Range, rngs As Range

Set rngs = Range("g2", [g2].End(xlDown))

提示框.Visible = 1

提示框.Clear

For Each rng In rngs

    If InStr(rng, 输入.Value) Then 提示框.AddItem rng.Value

Next

End Sub

主要利用了文本框的KeyUp事件,rngs是所有数据存储的位置。

2、当点击A列任意单元格时,文本框能与单元格重合,列表框在单元格下面出现。

代码如下:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Column = 1 Then

    输入.Visible = 1

    提示框.Visible = 0

    输入.Top = ActiveCell.Top

    输入.Left = ActiveCell.Left

    输入.Width = ActiveCell.Width

    输入.Height = ActiveCell.Height

    提示框.Top = ActiveCell(2, 1).Top

    提示框.Left = ActiveCell(2, 1).Left

    输入.Activate

    输入.Value = ""

    提示框.Clear

    Target = 输入.Value

Else

    输入.Visible = 0

    提示框.Visible = 0

End If

End Sub

主要利用工作表的SelectionChange事件,当然这里要注意一些细节的处理:

1)、当点击A列任意单元格时,如果不输入内容,列表框是不弹出来的,只有键入内容才会弹出列表框。

2)、每次点到新的单元格时文本框中不会出现上次输入的内容。

3、列表框弹出来后,在其中选中想要输入的内容,双击,内容就会添加到单元格中,同时文本框和列表框隐藏。

代码如下:

Private Sub 提示框_Click()

ActiveCell = 提示框.Value

提示框.Visible = 0

输入.Visible = 0

End Sub

主要利用了列表框的Click事件。

当然,上面这种效果要找到适合的场景,如在某些查询时可以使用,但是,如果单纯录入数据,录入后点击A列数据点就会出现文本框,不好进行复制粘贴等操作,除非再通过代码把文本框去掉。

那有没有不需要文本框,只在单元格中输入就会出现如上的列表框提示呢?

当然有,比如:

da04be1437b47492bd9c101540b31345.gif

我这里只用了工作表的SelectionChange事件和列表框的Click事件,代码就不展示了,如果把上个案例搞懂了,这个应该自己能做出来。

本节的分享就到这里,鹏哥祝大家每天都有进步。

聚米为谷

博学宏才

更多学习内容

手机端请扫描

d844562c9b9a9291e3c87c2b2cad4e01.png

电脑端请登录

www.mihong.top

22400f8c94f87b30ce3362d26d4c648f.gif 您点的每个赞,我都认真当成了喜欢
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值