乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > excel文本框-Excel-VBA 本周VBA文章代码放送——智能模糊提示

excel文本框-Excel-VBA 本周VBA文章代码放送——智能模糊提示

作者:乔山办公网日期:

返回目录:excel表格制作

前言

首先需要感谢看官您抽空观赏本文,若有任何问题,欢迎您的指正。


另外大家若有什么好的想法或者效果需求,可以在评论区留言或者私信我,我会尽力尝试做一做。


如果您喜欢本文的话,可以点赞、订阅、关注、收藏、留言评论哦!谢谢!O(∩_∩)O~~



First

因为有多位粉丝留言需要本周四所发表的文章的文本代码,所以今天为大家送上相关的代码信息供大家检阅。


相关文章:



文章配图 —— 输入数字时模糊匹配



VBA代码 —— Tab / Space


code


  • Part 1:设置当鼠标点中第一列第二行以下的单元格时显示文本框TextBox


Private Sub Worksheet_SelectionChange(ByVal Target As Range)


Application.ScreenUpdating = False


If Target.Column = 1 And Target.Row >= 2 Then


With TextBox1


.Activate


.Visible = True


.Value = ""


.Top = Target.Top


.Left = Target.Left


.Width = Target.Width


.Height = Target.Height + 1


End With


Else


TextBox1.Visible = False


ListBox1.Visible = False


End If


End Sub


  • Part 2:当文本框TextBox内容发生变化时的相应效果


Private Sub TextBox1_Change()


If TextBox1.Text <> "" Then


Set dic = CreateObject("Scripting.Dictionary")


With Sheets("对应表")


x = .UsedRange.Rows.Count


y = .UsedRange.Columns.Count


xArr = .Range(.Cells(2, 1), .Cells(x, y))


End With


For i = 1 To UBound(xArr)


If InStr(xArr(i, 1), TextBox1.Value) Then


dic(xArr(i, 1)) = ""


End If


Next i


CC = 0


For Each xN In dic


If xN <> "" Then CC = 1


Next


If CC = 1 Then


With ListBox1


.Visible = True


.Top = Selection.Offset(0, 1).Top


.Left = Selection.Offset(0, 1).Left


.Width = Selection.Width + 100


.Height = 90


End With


ListBox1.List = dic.keys


Else


ListBox1.Visible = False


End If


Else


ListBox1.Clear


ListBox1.Visible = False


End If


End Sub


  • Part 3:当在文本框TextBox内按方向键和回车键时激活列表框


Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)


With Sheets("对应表")


x = .UsedRange.Rows.Count


y = .UsedRange.Columns.Count


xArr = .Range(.Cells(2, 1), .Cells(x, y))


End With


If TextBox1.Text <> "" And ListBox1.Visible = True Then


If KeyCode = 40 Or KeyCode = 38 Or KeyCode = 13 Then


ListBox1.Activate


End If


End If


End Sub


  • Part 4:当双击列表框内容时,将值赋给指定单元格


Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)


With Sheets("对应表")


x = .UsedRange.Rows.Count


y = .UsedRange.Columns.Count


xArr = .Range(.Cells(2, 1), .Cells(x, y))


End With


For i = 1 To UBound(xArr)


If xArr(i, 1) = ListBox1.Value Then


ActiveCell.Offset(, 1).Cells = xArr(i, 2)


ActiveCell.Offset(, 2).Cells = xArr(i, 3)


ActiveCell.Offset(, 3).Cells = xArr(i, 4)


Exit For


End If


Next i


ListBox1.Clear


ListBox1.Visible = False


TextBox1 = ""


TextBox1.Visible = False


ActiveCell.Offset(1, 0).Select


End Sub


  • Part 5:当在列表框内按回车时,将选中的值赋给指定单元格


Private Sub ListBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)


With Sheets("对应表")


x = .UsedRange.Rows.Count


y = .UsedRange.Columns.Count


xArr = .Range(.Cells(2, 1), .Cells(x, y))


End With


If KeyCode = 13 Then


If ListBox1.Value <> "" Then


xCC = ListBox1.Value


Else


xCC = ListBox1.List(0)


End If


For i = 1 To UBound(xArr)


If xArr(i, 1) = xCC Then


ActiveCell.Offset(, 1).Cells = xArr(i, 2)


ActiveCell.Offset(, 2).Cells = xArr(i, 3)


ActiveCell.Offset(, 3).Cells = xArr(i, 4)


Exit For


End If


Next i


ListBox1.Clear


ListBox1.Visible = False


TextBox1 = ""


TextBox1.Visible = False


ActiveCell.Offset(1, 0).Select


ActiveCell.Offset(-1, 0).Select


End If


End Sub


若您对代码有疑惑的地方或者其他好的建议,或者代码有报错提示或其他代码错误,可以私信给我,也可以在评论区留言,谢谢!


PS:头条有私信的功能,点击作者头像后,在作者信息的右上方有【发私信】入口。



多说两句

作为一位头条号新手,我对自己的发文其实并没有多少规划,只是想着写写VBA的文章,遇到什么或者想到什么就写什么。


不过这周内有粉丝向我建议:


@盗买点菜】—— 可以制作一些视频教程吗?可以结合一个简单的案例发布一个函数的用法,或者图表的制作,简单的VBA编写,比如说简单的sumif等等。


@112673321】—— 有些函数太长了,能不能出点vba基础的东西,比如函数的构成,变量常量怎么引入到函数中去。


以上建议我会收纳、值得考虑,所以我计划对一周的发文进行划分,对分享的内容以及分享的模式进行修正或调整。不过对于一些知识点传授型的文章,其实一方面头条有很多作者已经发文,另一方面我个人认为越是基础知识点,越是要充分准备,讲解的要细腻,否则仍旧会让人一知半解,不能达到预想的效果。所以基础知识点的文章我需要用时间准备,拿回书本琢磨一番后再写文。


对于具体调整方案及模式后续会一步步展示给大家,具体信息会镶嵌于文章内,比如本文就有哦 ~ ~



文末 - 谢谢您嘞,(づ ̄3 ̄)づ╭❤

每一位读者的点赞、订阅、关注、收藏、留言评论都是对我的最大支持,谢谢各位帅哥美女!


同时也希望大家多多转发与评论留言,毕竟只有更多的人认可,我才更有动力为大家发布文章,提供代码。


再次谢谢大家!


☆情报披露☆
  • 周六定义为【代码放送与解答】


  1. 从上周日(或周一)至周四的文章中,挑选出需求代码人数最多的一篇,为大家提供文本代码,参考因素将包括投票、评论留言以及私信这三点。


  2. 挑选上周六至本周五内所有文章的部分评论进行解答。



友情链接 - 值得一看

1、Excel-VBA 实时记录表格异动


2、Excel-VBA 将乱序的数据剔除空值后有序排列成一列或一行


3、Excel-VBA 悄悄地拿数据——不打开Excel文档的情况下获取文档内数据


相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网