Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 4004|回复: 12

[已解决]帮帮忙:在count=count+1处溢出

[复制链接]
发表于 2013-11-3 15:59 | 显示全部楼层 |阅读模式
编了一个Public YGBH As String       '定义用于记录“员工编号”的变量
Public YGXM As String       '定义用于记录“员工姓名”的变量
Public YGXB As String       '定义用于记录“员工性别”的变量
Public CSNY As String       '定义用于记录“出生年月”的变量
Public YGXL As String       '定义用于记录“员工学历”的变量
Public GZSJ As String       '定义用于记录“工作时间”的变量
Public YGZW As String       '定义用于记录“员工职务”的变量
Sub cancel()                 '用于对全局变量进行初始化
    YGBH = " "
    YGXM = " "
    YGXB = " "
    CSNY = " "
    YGXL = " "
    GZSJ = " "
    YGZW = " "
End Sub
Sub note()                  '用于完成录入功能
    Dim tempmsgbox As VbMsgBoxResult
    Dim count As Integer
     If UserForm1.TextBox1.Text = " " Or _
       UserForm1.TextBox2.Text = " " Or _
       UserForm1.TextBox3.Text = " " Or _
       UserForm1.TextBox4.Text = " " Or _
       YGXB = " " Or _
       YGXL = " " Or _
       YGZW = " " Then
    tempmsgbox = MsgBox("请输入完整的信息!", vbOKOnly & vbInformation, "系统提示")
       End
    End If
    count = 0                '为变量赋初值
    Range("A2").Select
    Do Until Selection.Offset(count, 0).Value = " "
        If UserForm1.TextBox1.Text = Selection.Offset(count, 0).Value Then
        
        tempmsgbox = MsgBox("该员工编号已经登记,请重新输入!", vbOKOnly & vbInformation, "提示")
        End
        End If
(此处出错)count = count + 1
        Loop
        YGBH = UserForm1.TextBox1.Text
        YGXM = UserForm1.TextBox2.Text
        CSNY = UserForm1.TextBox3.Text
        GZSJ = UserForm1.TextBox4.Text
        count = 0
        Range("A2").Select
        Do Until Selection.Offset(count, 0).Value = ""
            count = count + 1
        Loop
        Selection.Offset(count, 0).Value = YGBH
        Selection.Offset(count, 1).Value = YGXM
        Selection.Offset(count, 2).Value = YGXB
        Selection.Offset(count, 3).Value = CSNY
        Selection.Offset(count, 4).Value = YGXL
        Selection.Offset(count, 5).Value = GZSJ
        Selection.Offset(count, 6).Value = YGZW
        Call cancel
        If MsgBox("是否继续录入?", vbYesNo, "继续录入") = vbNo Then
            UserForm1.Hide
        Else
            UserForm1.TextBox1.Text = ""
            UserForm1.TextBox2.Text = ""
            UserForm1.TextBox3.Text = ""
            UserForm1.TextBox4.Text = ""
        End If
        
End Sub
简单的员工信息录入系统:运行错误"溢出"
最佳答案
2013-11-3 19:07
END语句最好不要使用,特别是不熟悉的情况下。

员工信息表.zip

17.49 KB, 下载次数: 8

 楼主| 发表于 2013-11-3 16:00 | 显示全部楼层
回复

使用道具 举报

发表于 2013-11-3 16:10 | 显示全部楼层
本帖最后由 我心飞翔410 于 2013-11-3 16:16 编辑

Dim count As Long  

员工信息表.zip

19.44 KB, 下载次数: 4

回复

使用道具 举报

 楼主| 发表于 2013-11-3 16:11 | 显示全部楼层
求助???????
回复

使用道具 举报

发表于 2013-11-3 16:15 | 显示全部楼层
cmjcmj8888 发表于 2013-11-3 16:11
求助???????

Integer 变量存储为 16位(2 个字节)的数值形式,其范围为 -32,768 到 32,767 之间。Integer 的类型声明字符是百分比符号 (%)。
超出范围 所以要用更大的long
回复

使用道具 举报

 楼主| 发表于 2013-11-3 18:27 | 显示全部楼层
把count的类型改成long后还是出错
回复

使用道具 举报

发表于 2013-11-3 18:44 | 显示全部楼层
本帖最后由 hwc2ycy 于 2013-11-3 18:56 编辑

代码有点错误。
回复

使用道具 举报

 楼主| 发表于 2013-11-3 18:51 | 显示全部楼层
hwc2ycy 发表于 2013-11-3 18:44
要定位最后一个单元格就不这么不停的UNTIL循环了。直接用END就可以找出来。

那怎么改?还有我没按顺序录,可程序按顺序录入?如何根据编号定录入位置。
回复

使用道具 举报

 楼主| 发表于 2013-11-3 18:54 | 显示全部楼层
hwc2ycy 发表于 2013-11-3 18:44
要定位最后一个单元格就不这么不停的UNTIL循环了。直接用END就可以找出来。

帮忙改改,谢谢喽!!!如何根据编号定录入位置?

员工信息表2.zip

19.11 KB, 下载次数: 1

回复

使用道具 举报

发表于 2013-11-3 19:06 | 显示全部楼层
  1. Sub note()                  '用于完成录入功能
  2.     Dim tempmsgbox As VbMsgBoxResult
  3.     Dim count As Integer
  4.     Dim lLastrow As Long
  5.     Dim rg As Range

  6.     If UserForm1.TextBox1.Text = " " Or _
  7.        UserForm1.TextBox2.Text = " " Or _
  8.        UserForm1.TextBox3.Text = " " Or _
  9.        UserForm1.TextBox4.Text = " " Or _
  10.        YGXB = " " Or _
  11.        YGXL = " " Or _
  12.        YGZW = " " Then
  13.         MsgBox "请输入完整的信息!", vbOKOnly & vbInformation, "系统提示"
  14.         Exit Sub
  15.     End If

  16.     Set rg = Columns(1).Find(what:=UserForm1.TextBox1.Value, lookat:=xlWhole)
  17.     If Not rg Is Nothing Then
  18.         MsgBox "序列号重复了"
  19.         Exit Sub
  20.     End If


  21.     YGBH = UserForm1.TextBox1.Text
  22.     YGXM = UserForm1.TextBox2.Text
  23.     CSNY = UserForm1.TextBox3.Text
  24.     GZSJ = UserForm1.TextBox4.Text

  25.     With Cells(Rows.count, 1).End(xlUp)(2)
  26.         .Resize(, 7).Value = Array(YGBH, YGXM, YGXB, CSNY, YGXL, GZSJ, YGZW)
  27.     End With

  28.     Call cancel
  29.     If MsgBox("是否继续录入?", vbYesNo, "继续录入") = vbNo Then
  30.         UserForm1.Hide
  31.     Else
  32.         UserForm1.TextBox1.Text = ""
  33.         UserForm1.TextBox2.Text = ""
  34.         UserForm1.TextBox3.Text = ""
  35.         UserForm1.TextBox4.Text = ""
  36.     End If
  37. End Sub
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-3-28 17:48 , Processed in 0.375702 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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