ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

下标越界 哪位老师能帮看看要哪里做判断

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-11-10 21:19 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Private Sub CommandButton1_Click()
    If TextBox1.Text = "" Then MsgBox "请输入客户名称!", , "提示": Exit Sub
    If ComboBox1.Value = "" Or ComboBox2.Value = "" Then MsgBox "请输入日期!", , "提示": Exit Sub
    Dim arr, crr(), iDate1 As Date, iDate2 As Date, x%, i%, y%
    arr = Sheet1.UsedRange
    iDate1 = ComboBox1.Value
    iDate2 = ComboBox2.Value
   If iDate2 < iDate1 Then MsgBox "结束日期不能大于或等于开始日期!", , "提示": Exit Sub
    For x = 2 To UBound(arr)
        If arr(x, 1) >= iDate1 And arr(x, 1) <= iDate2 And TextBox1.Value = arr(x, 2) Then
            i = i + 1
            ReDim Preserve crr(1 To UBound(arr, 2), 0 To i)
            For y = 1 To UBound(arr, 2)
                crr(y, i) = arr(x, y)
            Next y
           ' Else: MsgBox "123!", , "提示": Exit Sub
        End If
        'If x = 1 And y = 0 Then MsgBox "没有这个客户!", , "提示": Exit Sub
    Next x
     'If x = 1 Then MsgBox "没有这个客户!", , "提示": Exit Sub
    For x = 1 To UBound(arr, 2)
        crr(x, 0) = arr(1, x)
    Next x
    With Sheet2
        .Cells.ClearContents
        .Cells.Borders.LineStyle = 0
        .Range("A1").Resize(UBound(crr, 2) + 1, UBound(crr)) = Application.Transpose(crr)
        .Range("A1").Resize(UBound(crr, 2) + 1, UBound(crr)).Borders.LineStyle = 1
    End With
    Erase arr, crr
    MsgBox "查找完毕!"
End Sub

--------------------------------------
TextBox1 的值在 列B里没有  就提示报错  想不出在哪做判断中断。哪位老师能帮帮我。

QQ图片20151110211007.png

20151109日期提取 - 副本.rar

34.51 KB, 下载次数: 14

TA的精华主题

TA的得分主题

发表于 2015-11-12 09:07 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. Private Sub CommandButton1_Click()
  2.     If TextBox1.Text = "" Then MsgBox "请输入客户名称!", , "提示": Exit Sub
  3.     If ComboBox1.Value = "" Or ComboBox2.Value = "" Then MsgBox "请输入日期!", , "提示": Exit Sub
  4.     Dim arr, crr(), iDate1 As Date, iDate2 As Date, x%, i%, y%
  5.     arr = Sheet1.UsedRange
  6.     iDate1 = ComboBox1.Value
  7.     iDate2 = ComboBox2.Value
  8.    If iDate2 < iDate1 Then MsgBox "结束日期不能大于或等于开始日期!", , "提示": Exit Sub
  9.     For x = 2 To UBound(arr)
  10.         If arr(x, 1) >= iDate1 And arr(x, 1) <= iDate2 And TextBox1.Value = arr(x, 2) Then
  11.             i = i + 1
  12.             ReDim Preserve crr(1 To UBound(arr, 2), 0 To i)
  13.             For y = 1 To UBound(arr, 2)
  14.                 crr(y, i) = arr(x, y)
  15.             Next y
  16.            ' Else: MsgBox "123!", , "提示": Exit Sub
  17.         End If
  18.         'If x = 1 And y = 0 Then MsgBox "没有这个客户!", , "提示": Exit Sub
  19.     Next x
  20.      If i = 0 Then MsgBox "没有这个客户!", , "提示": Exit Sub
  21.     For x = 1 To UBound(arr, 2)
  22.         crr(x, 0) = arr(1, x)
  23.     Next x
  24.     With Sheet2
  25.         .Cells.ClearContents
  26.         .Cells.Borders.LineStyle = 0
  27.         .Range("A1").Resize(UBound(crr, 2) + 1, UBound(crr)) = Application.Transpose(crr)
  28.         .Range("A1").Resize(UBound(crr, 2) + 1, UBound(crr)).Borders.LineStyle = 1
  29.     End With
  30.     Erase arr, crr
  31.     MsgBox "查找完毕!"
  32. End Sub
复制代码
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-26 13:33 , Processed in 0.025740 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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