Excel精英培训网

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

[已解决](求助)修改代码(VBA)

[复制链接]
发表于 2011-8-28 08:12 | 显示全部楼层 |阅读模式
本帖最后由 long826121 于 2011-8-28 08:15 编辑

我想增加一个功能:
"保存提交"点击后,自动关闭当前表,弹出登陆窗体userform1!(200510900001   张雪)
如何实现?
感谢了,真诚的说一声:感谢各位的帮助!
考试登陆系统.rar (24.96 KB, 下载次数: 4)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2011-8-28 08:23 | 显示全部楼层    本楼为最佳答案   
本帖最后由 zjdh 于 2011-8-28 08:25 编辑
  1. Sub 保存提交()
  2.     Dim xh, xm, cj%, i, a
  3.     Dim bzda, xsda()
  4.     With Sheets(Right(ActiveSheet.Name, 2) & "答案")
  5.         bzda = .Range("b3:b" & .[b65536].End(3).Row)
  6.     End With
  7.     ReDim xsda(1 To UBound(bzda))
  8.     xh = [b2]
  9.     xm = [d2]
  10.     For Each icell In Range("l4:l" & [l65536].End(3).Row)    '假定每题都要求必答
  11.         If i > UBound(bzda) Then Exit For
  12.         If icell <> "" Then i = i + 1: xsda(i) = UCase(icell)
  13.     Next
  14.     For i = 1 To UBound(bzda)
  15.         If xsda(i) = bzda(i, 1) Then cj = cj + 2
  16.     Next i
  17.     [h2] = cj
  18.     With Sheets("学生考试信息登记表")
  19.         Set a = .Range("a1:a65536").Find(xh, lookat:=xlWhole)
  20.         .Cells(a.Row, 5) = cj
  21.         .Cells(a.Row, 6) = "已考"
  22.     End With
  23.     Application.Visible = False
  24.     UserForm1.TextXH = [b2]
  25.     UserForm1.TextXM = [d2]
  26.     UserForm1.Show
  27. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2011-8-28 09:11 | 显示全部楼层
回复 zjdh 的帖子

有一个小小的问题:
当把这个代码加进去了,可以点击“退出系统”,当时能退出,可隔一会儿又出现登陆窗体,怎么回事
回复

使用道具 举报

发表于 2011-8-28 09:37 | 显示全部楼层
我不明白是登录时,还是交卷时?
回复

使用道具 举报

发表于 2011-8-28 09:41 | 显示全部楼层
从语句分析都不可能出现你说的情况。
回复

使用道具 举报

发表于 2011-8-28 10:16 | 显示全部楼层
原因找出来了,是你那个定时器,虽然文件关闭了,定时器依然运行,1分钟后就重新打开文件,定时器有问题,宏要改!
回复

使用道具 举报

发表于 2011-8-28 10:20 | 显示全部楼层
分析一下定时器:
Sub 计时()
If k < 10 Then    前10分钟会提示,也就是提示到50分就停止了,显然不合理!
   Application.OnTime Now + TimeValue("00:01:00"), "单元格显示" '每隔一分种计时一次
End If
End Sub

也就是说10分钟以后关闭文件不会重启文件!
回复

使用道具 举报

发表于 2011-8-28 10:23 | 显示全部楼层
你做运行以下宏就明白怎么解决啦!
Dim K
Sub 计时()
    If K < 5 Then
        Application.OnTime Now + TimeValue("00:00:05"), "单元格显示"    '每隔5秒种计时一次
    Else
        Application.OnTime Now, "CLOS"    '重置计时器
    End If
End Sub

Sub 单元格显示()
    K = K + 1
    If K >= 5 Then
        MsgBox "时间到"
    End If
    Range("a1") = "离交卷还有" & 25 - K * 5 & "秒"
    计时
End Sub
Sub CLOS()
End Sub
回复

使用道具 举报

 楼主| 发表于 2011-8-28 11:22 | 显示全部楼层
其实我想要这个效果:http://www.excelpx.com/thread-196485-1-1.html
回复

使用道具 举报

 楼主| 发表于 2011-8-28 11:24 | 显示全部楼层
回复 zjdh 的帖子

我想计时继续,只要没达到60分钟,就不停下来!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-28 23:16 , Processed in 0.398918 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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