ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 输入时逐步提示信息

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2012-12-6 14:07 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
我在sheet6表中L列第四单元格开始《客户(公司)名称》 输入时逐步提示信息.rar (12.86 KB, 下载次数: 675)


”也在sheet6表中输入下列代码,一运行就说"方法和数据成员未找到",然后Private Sub Worksheet_SelectionChange(ByVal Target As Range)语句为黄色

注(数据库在sheet35表,“”数据在sheet35表中AB列第五单元开始)

要求1:输入时逐步提示信息
要求2:  模糊提示信息(即输入其中一个“X或N”字,则自动列出含有“X或N”的名称供选择


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Row < 3 Then Exit Sub
Dim d, i&, Myr&, Arr, cj, cp, jg, r1, n&, ii&
Dim x, cpin$, Myr1&, r%, Arr1(), j&
Myr = Sheet35.[AB65536].End(xlUp).Row
Arr = Sheet35.Range("AB5:AB" & Myr)
col = Target.Column
            Me.ListBox1.Clear
            Me.TextBox1 = ""
            Me.ListBox1.Visible = False
            Me.TextBox1.Visible = False
If Target.Column = 2 Then
    For i = 1 To UBound(Arr)
        cj = cj & Arr(i, 1) & ","
    Next
    cj = Left(cj, Len(cj) - 1)
    With Target.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
        Operator:=xlBetween, Formula1:=cj
    End With
ElseIf Target.Column = 3 Then
    Myr = Sheet35.[AB65536].End(xlUp).Row
    Arr = Sheet35.Range("AB5:AB" & Myr)
        For i = 1 To UBound(Arr)
            cp = cp & Arr(i, 1) & ","
        Next
        cp = Left(cp, Len(cp) - 1)
    With Target.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
        Operator:=xlBetween, Formula1:=cp
    End With
ElseIf Target.Column = 4 Or Target.Column = 5 Then
            With Me.TextBox1
                .Visible = True
                .Top = Target.Top
                .Left = Target.Left
                .Width = Target.Width
                .Height = Target.Height + 5
                .Activate
            End With
            With Me.ListBox1
                .Visible = True
                .Top = Target.Top
                .Left = Target.Left + Target.Width
                .Height = Target.Height * 10
            End With
        If Target.Column = 4 Then
            With Me.ListBox1
                .List = kc
            End With
        ElseIf Target.Column = 5 Then
            With Me.ListBox1
                .List = kd
            End With
        End If
Else
            Me.ListBox1.Clear
            Me.TextBox1 = ""
            Me.ListBox1.Visible = False
            Me.TextBox1.Visible = False
End If

End Sub

TA的精华主题

TA的得分主题

发表于 2012-12-6 14:35 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. Dim Arr
  2. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  3. If Target.Count > 1 Then Exit Sub
  4. If Target.Row < 5 Then Exit Sub
  5. Dim Myr&
  6. Myr = Sheet35.[AB65536].End(xlUp).Row
  7. Arr = Sheet35.Range("AB5:Ac" & Myr)
  8. If Target.Column = 12 Then
  9.     With Me.TextBox1
  10.         .Visible = True
  11.         .Top = Target.Top
  12.         .Left = Target.Left
  13.         .Width = Target.Width
  14.         .Height = Target.Height + 5
  15.         .Activate
  16.     End With
  17.     With Me.ListBox1
  18.         .Visible = True
  19.         .Top = Target.Top
  20.         .Left = Target.Left + Target.Width
  21.         .Height = Target.Height * 10
  22.     End With
  23. Else
  24.     Me.ListBox1.Clear
  25.     Me.TextBox1 = ""
  26.     Me.ListBox1.Visible = False
  27.     Me.TextBox1.Visible = False
  28. End If
  29. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2012-12-6 14:37 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
控件没有画。
请见附件。

输入时逐步提示信息1206.rar

19.82 KB, 下载次数: 2255

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-7 19:12 | 显示全部楼层
蓝桥玄霜 发表于 2012-12-6 14:37
控件没有画。
请见附件。

谢谢,我爱你

TA的精华主题

TA的得分主题

发表于 2012-12-13 11:45 | 显示全部楼层
  1. 可改为这样:

  2. Dim Arr
  3. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  4. If Target.Count > 1 Then Exit Sub
  5. If Target.Row < 5 Then Exit Sub
  6. Dim Myr&
  7. Myr = Sheet35.[AB65536].End(xlUp).Row
  8. Arr = Sheet35.Range("Aa5:Ab" & Myr)
  9. If Target.Column = 12 Then
  10.     With Me.TextBox1
  11.         .Visible = True
  12.         .Top = Target.Top
  13.         .Left = Target.Left
  14.         .Width = Target.Width
  15.         .Height = Target.Height + 5
  16.         .Activate
  17.     End With
  18.     With Me.ListBox1
  19.         .Visible = True
  20.         .Top = Target.Top
  21.         .Left = Target.Left + Target.Width
  22.         .Height = Target.Height * 10
  23.     End With
  24. Else
  25.     Me.ListBox1.Clear
  26.     Me.TextBox1 = ""
  27.     Me.ListBox1.Visible = False
  28.     Me.TextBox1.Visible = False
  29. End If
  30. End Sub

  31. Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  32.     Dim i As Integer
  33.     Dim Language As Boolean
  34.     Dim myStr As String
  35.     Me.ListBox1.Clear
  36.     With Me.TextBox1
  37.         For i = 1 To Len(.Value)
  38.             If Asc(Mid$(.Value, i, 1)) > 255 Or Asc(Mid$(.Value, i, 1)) < 0 Then
  39.                 Language = True
  40.                 myStr = myStr & Mid$(.Value, i, 1)
  41.             Else
  42.                 myStr = myStr & LCase(Mid$(.Value, i, 1))
  43.             End If
  44.         Next
  45.     End With
  46.     For i = 2 To UBound(Arr)
  47.         If InStr(Arr(i, 1), LCase(myStr)) > 0 Then
  48.             Me.ListBox1.AddItem Arr(i, 2)
  49.         End If
  50.     Next
  51. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-12-13 10:54 | 显示全部楼层
蓝桥玄霜 发表于 2012-12-6 14:37
控件没有画。
请见附件。

请教了,我要改成辅助编码在名称的前一列,怎么改啊?我研究了一早上,还是搞不懂,请教了,谢谢谢谢

TA的精华主题

TA的得分主题

发表于 2012-12-13 15:03 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
感谢兰版的无私奉献,这个也是我想要的功能!谢谢,学习了

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-20 10:18 | 显示全部楼层
输入时逐步提示信息 ,,之后该表不能  Ctrl+C 或 Ctrl+V     鼠标右键复制,粘贴等功能

TA的精华主题

TA的得分主题

发表于 2013-1-14 12:08 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
壮哉大兰版!

TA的精华主题

TA的得分主题

发表于 2013-2-14 21:15 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
正是需要的,学习,非常感谢
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-23 23:16 , Processed in 0.039592 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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