返回目录: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 ̄)づ╭❤
每一位读者的点赞、订阅、关注、收藏、留言评论都是对我的最大支持,谢谢各位帅哥美女!
同时也希望大家多多转发与评论留言,毕竟只有更多的人认可,我才更有动力为大家发布文章,提供代码。
再次谢谢大家!
☆情报披露☆
周六定义为【代码放送与解答】
从上周日(或周一)至周四的文章中,挑选出需求代码人数最多的一篇,为大家提供文本代码,参考因素将包括投票、评论留言以及私信这三点。
挑选上周六至本周五内所有文章的部分评论进行解答。
友情链接 - 值得一看
2、Excel-VBA 将乱序的数据剔除空值后有序排列成一列或一行
3、Excel-VBA 悄悄地拿数据——不打开Excel文档的情况下获取文档内数据