Excel精英培训网

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

[习题] 【201401VBA初级】第三讲作业C组上交贴(已开帖)

[复制链接]
发表于 2014-4-24 00:01 | 显示全部楼层 |阅读模式
本帖最后由 xdragon 于 2014-4-29 23:12 编辑

第三讲作业下载地址:http://www.excelpx.com/thread-323577-1-1.html
第三讲视频下载地址:(待讲师上传后更新)
本次作业提交要求如下:
1、提交请用代码形式提交,无需上传附件
2、附件文件名或帖子标题按要求格式命名:组号-论坛ID,
          如:C07-RxJc;
3、C组学员跟帖时,不要重复占楼,修改请在原楼层,本帖已设置回复仅作者可见;
4、非组学员勿跟帖,违者删帖处理;
5、作业截止时间:2014年4月29日,20:00,请准时交作业哈。

评分

参与人数 2 +4 收起 理由
RxJc + 1 C07-RxJc
ghostjiao + 3 龙哥好快啊

查看全部评分

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-4-24 21:24 | 显示全部楼层
C04-Frankhao123 要外出几天,先把做了的交了,第二题也不知哪儿出了问题,折腾了好久
1-1
  1. Sub dmol1()
  2.     Dim bank As String
  3.     bank = InputBox("请输入银行名称")
  4.   If bank = "ICBC" Then
  5.   MsgBox "中国工商银行"
  6.   ElseIf bank = "CBC" Then
  7.   MsgBox "中国建设银行"
  8.   ElseIf bank = "ABC" Then
  9.   MsgBox "中国农业银行"
  10.   Else
  11.     MsgBox "输入银行简称错误"
  12.     End If
  13.     End Sub
复制代码
1-2
  1. Sub dmol2()
  2.     Dim bank2 As String
  3.         bank2 = InputBox("请输入银行名称")
  4.         Select Case bank2
  5.         Case "ICBC"
  6.         MsgBox "中国工商银行"
  7.         Case "CBC"
  8.         MsgBox "中国建设银行"
  9.         Case "ABC"
  10.         MsgBox "中国农业银行"
  11.      Case bank2 <> "ICBC"
  12.      MsgBox "输入银行简称错误"
  13.       Case bank2 <> "CBC"
  14.       MsgBox "输入银行简称错误"
  15.       Case Is <> "ABC"
  16.       MsgBox "输入银行简称错误"
  17.           End Select
  18.    End Sub
复制代码
2
  1. Sub dmol3()
  2.     Dim acc As Long
  3.     Dim name As String
  4.     Dim money As Integer
  5.     Dim password As Integer
  6.      acc = InputBox("请输入银行账号")
  7.      name = InputBox("请输入用户名")
  8.    If acc <> 147258 Then
  9.      MsgBox "账户不存在"
  10.     ElseIf acc = 147258 Then
  11.      password = InputBox("请输入密码")
  12.     ElseIf password <> 1234 Then
  13.      MsgBox "密码有误"
  14.     ElseIf password = 1234 Then
  15.      money = InputBox("请输入取款金额")
  16.     ElseIf money < 0 Or money > 8000 Then
  17.      MsgBox "取款失败"
  18.     Else
  19.      MsgBox money
  20.      MsgBox 8000 - money
  21.      End If
  22.     End Sub
复制代码

点评

第三题还未上交哦。加油  发表于 2014-4-26 14:56

评分

参与人数 1 +10 金币 +10 收起 理由
xdragon + 10 + 10 淡定

查看全部评分

回复

使用道具 举报

发表于 2014-4-25 17:10 | 显示全部楼层
本帖最后由 我帮你 于 2014-4-28 17:47 编辑

C015-我帮你  
龙哥辛苦了


  1. 1.
  2. 第一种方法:
  3. Sub text()
  4.     Dim a As String
  5.         a = InputBox("请输入银行简称:" & Chr(13) & "ICBC:中国工商银行" & Chr(13) & "CBC:中国建设银行" & Chr(13) & "ABC:中国农业银行")
  6.    
  7.     If VBA.LCase(a) = "icbc" Then
  8.         MsgBox "中国工商银行"
  9.     ElseIf VBA.LCase(a) = "cbc" Then
  10.         MsgBox "中国建设银行"
  11.     ElseIf VBA.LCase(a) = "abc" Then
  12.         MsgBox "中国农业银行"
  13.     ElseIf a = "" Then
  14.         Exit Sub
  15.     Else
  16.         MsgBox "输入银行简称错误"
  17.     End If
  18. End Sub


  19. 第二种方法:
  20. Sub text1()
  21.     Dim a As String
  22.         a = InputBox("请输入银行简称:" & Chr(13) & "ICBC:中国工商银行" & Chr(13) & "CBC:中国建设银行" & Chr(13) & "ABC:中国农业银行")
  23.     Select Case VBA.LCase(a)
  24.     Case Is = "icbc"
  25.         MsgBox "中国工商银行"
  26.     Case Is = "cbc"
  27.         MsgBox "中国建设银行"
  28.     Case Is = "abc"
  29.         MsgBox "中国农业银行"
  30.     Case Is = ""
  31.         Exit Sub
  32.     Case Else
  33.         MsgBox "输入银行简称错误"
  34.     End Select
  35. End Sub

  36. 2.
  37. Sub text3()
  38.     Dim ID As String, Name As String, Money As Double, Password As Variant, qkje As Variant, UserId As Variant, UserPassword As Variant '如果有人胡乱输入字符,程序就无法进行了,所以这里没用Double
  39.         ID = 147258
  40.         Name = "我帮你"
  41.         Money = 8000
  42.         Password = "1234"
  43.         
  44.     UserId = InputBox("请输入账号")
  45.     Select Case UserId
  46.         Case Is = Name, ID
  47.                   UserPassword = InputBox("请输入密码")
  48.             If UserPassword = Password Then
  49.                 qkje = InputBox("取款金额")
  50.                     If qkje > 0 And qkje <= Money Then
  51.                             MsgBox "恭喜您,取款成功!取款金额为:" & qkje & vbCrLf & "账户余额为:" & Money - qkje
  52.                     Else
  53.                         MsgBox "取款失败"
  54.                     End If
  55.             Else
  56.                 MsgBox "密码有误"
  57.             End If
  58.     Case Else
  59.         MsgBox "账户不存在"
  60.     End Select
  61. End Sub

  62. 3.
  63. 第一种方法:
  64. Function shouye(tishi)
  65.     If tishi = 1 Then
  66.         shouye = "存款"
  67.     ElseIf tishi = 2 Then
  68.          shouye = "取款"
  69.          Call text3
  70.          Exit Function
  71.     ElseIf tishi = 3 Then
  72.         shouye = "查询余额"
  73.     ElseIf tishi = 4 Then
  74.         shouye = "退出程序"
  75.     Else
  76.         shouye = "输入有误,请重新输入"
  77.     End If
  78. End Function
  79. Sub text4()
  80.     Dim tishi As String
  81.     tishi = InputBox("请选择服务类型:" & Chr(13) & "1.存款" & Chr(13) & "2.取款" & Chr(13) & "3.查询余额" & Chr(13) & "4.退出程序")
  82.     MsgBox shouye(tishi)[/color]
  83. [color=black]End Sub

  84. 方法一有缺陷,当输入2后,跳转到text3中,当点关闭或者取消后,提示完失败后,还会提示“取款”,想不到好的解决办法。
  85. 方法二:
  86. Sub text5()
  87.     Dim tishi As String
  88.     tishi = InputBox("请选择服务类型:" & Chr(13) & "1.存款" & Chr(13) & "2.取款" & Chr(13) & "3.查询余额" & Chr(13) & "4.退出程序")
  89.         If tishi = 1 Then
  90.             MsgBox "存款"
  91.         ElseIf tishi = 2 Then
  92.             Call text3
  93.         ElseIf tishi = 3 Then
  94.             MsgBox "查询余额"
  95.         ElseIf tishi = 4 Then
  96.             MsgBox "退出程序"
  97.         Else
  98.             MsgBox "输入有误,请重新输入"
  99.         End If
  100. End Sub

复制代码

点评

第三题方法一有缺陷存在;方法二没有按照要求做自定义函数。-2分  发表于 2014-4-29 20:03

评分

参与人数 1 +18 金币 +18 收起 理由
xdragon + 18 + 18 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2014-4-26 00:51 | 显示全部楼层
本帖最后由 RxJc 于 2014-4-26 00:55 编辑

终于完成了~~脑细胞死了好多,自我感觉完成度不是很好,但是似乎可以看见VBA的大门的方向了。
第一题(If语句):
  1. Sub test1a()
  2.   Dim a As String
  3.   a = InputBox("请输入银行名称简写")
  4.   If a = "ICBC" Then
  5.   MsgBox "中国工商银行"
  6.   ElseIf a = "CBC" Then
  7.   MsgBox "中国建设银行"
  8.   ElseIf a = "ABC" Then
  9.   MsgBox "中国农业银行"
  10.   Else
  11.   MsgBox "输入银行简称错误"
  12.   End If
  13. End Sub
复制代码
第一题(Select语句):
  1. Sub test1b()
  2.   Dim a As String
  3.   a = InputBox("请输入银行名称简写")
  4.     Select Case a
  5.       Case Is = "ICBC"
  6.       MsgBox "中国工商银行"
  7.       Case Is = "CBC"
  8.       MsgBox "中国建设银行"
  9.       Case Is = "ABC"
  10.       MsgBox "中国农业银行"
  11.       Case Is <> "ICBC", "CBC", "ABC"
  12.       MsgBox "输入银行简称错误"
  13.     End Select
  14. End Sub
复制代码
第二题(不知道是不是我理解的问题,感觉题目里的用户名没有用,所以就没有去定义,而是用论坛ID当做账号使用了):
  1. Sub test2()
  2.   Dim Account As String
  3.   Dim Amount As Integer
  4.   Dim Code As String
  5.   Account = "RxJc"
  6.   Amount = 8000
  7.   Code = "1234"
  8.   
  9.   Dim step1 As String
  10.   Dim step2 As String
  11.   Dim step3 As Integer
  12.   Dim balance As Integer
  13.   
  14.   step1 = InputBox("请输入您的银行账号")
  15.   If step1 = Account Then
  16.      step2 = InputBox("请输入您的密码")
  17.         If step2 = Code Then
  18.           step3 = InputBox("请输入取款金额")
  19.              If step3 > 0 And step3 < Amount Then
  20.                    balance = Amount - step3
  21.                    MsgBox "取款成功!" & "余额:" & balance
  22.              Else: MsgBox "取款失败"
  23.              End If
  24.         Else: MsgBox "密码错误"
  25.         End If
  26.   Else: MsgBox "账户不存在"
  27.   End If
  28. End Sub
复制代码
第三题及附加(霸气了,自我感觉很霸气,另外我觉得调用第二题的过程无法实现我的想法,所以存和取得过程重新写了):
  1. Option Explicit
  2. Dim balance As Long

  3. Sub Save()
  4.     Dim SaveAmount As Long
  5.     SaveAmount = InputBox("请输入您要存入的金额")
  6.        If SaveAmount > 0 Then
  7.          balance = balance + SaveAmount
  8.          MsgBox "存款成功!" & "金额:" & SaveAmount
  9.          Else: MsgBox ("金额错误!谢谢您的使用")
  10.        End If
  11. End Sub


  12. Sub Take()
  13.     Dim TakeAmount As Long
  14.     TakeAmount = InputBox("请输入您要取款的金额")
  15.         If TakeAmount > 0 And balance > TakeAmount Then
  16.         balance = balance - TakeAmount
  17.         MsgBox "取款成功!" & "金额:" & TakeAmount
  18.         Else: MsgBox ("金额错误!谢谢您的使用")
  19.     End If
  20. End Sub


  21. Sub test3()
  22.     Dim Account As String
  23.     Dim Code As String
  24.    
  25.     Account = "RxJc"
  26.     Code = "1234"
  27.     balance = 100000
  28.    
  29.     Dim EnterAccount As String
  30.     Dim EnterCode As String
  31.     Dim Choice As Byte
  32.    
  33.     EnterAccount = InputBox("欢迎使用RxJc银行ATM系统!请输入您的银行账号")
  34.     If EnterAccount = Account Then
  35.         EnterCode = InputBox("请输入您的密码")
  36.             If EnterCode = Code Then
  37. Line1:            Choice = InputBox("请选择 1-存款 2-取款 3-查询 4-退出")
  38.                   If Choice = 1 Then
  39.                   Call Save
  40.                   GoTo Line1
  41.                   Else
  42.                       If Choice = 2 Then
  43.                       Call Take
  44.                       GoTo Line1
  45.                       Else
  46.                          If Choice = 3 Then
  47.                          MsgBox "您的余额是:" & balance
  48.                          GoTo Line1
  49.                          Else
  50.                             If Choice = 4 Then
  51.                             MsgBox "谢谢您的使用!请收好您的卡!"
  52.                             End If
  53.                          End If
  54.                       End If
  55.                   End If
  56.                Else: MsgBox ("密码错误,谢谢您的使用")
  57.             End If
  58.         Else: MsgBox ("账户不存在!谢谢您的使用")
  59.      End If
  60. End Sub
复制代码
这又是我最霸气的回帖了~~~

点评

第三题没有按照题目要求写自定义函数-5分;第三题及附加题中的inputbox在什么都不输入的情况下按确定提示出错。完成附加题,额外+2分  发表于 2014-4-26 14:54

评分

参与人数 1 +17 金币 +17 收起 理由
xdragon + 17 + 17 很给力!

查看全部评分

回复

使用道具 举报

发表于 2014-4-26 13:29 | 显示全部楼层
本帖最后由 ghostcan 于 2014-4-26 13:47 编辑

C01-ghostjiao
定义模块及变量BKI
  1. Type BanKInfo
  2.     账号     As String        '6位数字可以用long,正常有很多位数字转换为string
  3.     用户名   As String
  4.     存款金额 As Single       '利息之类的出现小数
  5.     密码     As Long         '银行密码只能数字,位数<=6
  6. End Type
  7. Dim BKI As BanKInfo
复制代码
第一题:
  1. Sub 第一题1()
  2.     Dim Imsg    '可能输入各种类型数据
  3.     Imsg = UCase(InputBox("请输入银行英文缩写", "输入提示"))
  4.     If Imsg = "ICBC" Then
  5.         MsgBox "中国工商银行"
  6.     ElseIf Imsg = "CBC" Then
  7.         MsgBox "中国建设银行"
  8.     ElseIf Imsg = "ABC" Then
  9.         MsgBox "中国农业银行"
  10.     Else
  11.         MsgBox "输入银行简称错误"
  12.     End If
  13. End Sub
  14. Sub 第一题2()
  15.     Dim Imsg
  16.     Imsg = UCase(InputBox("请输入银行英文缩写", "输入提示"))
  17.     Select Case Imsg
  18.     Case "ICBC"
  19.         MsgBox "中国工商银行"
  20.     Case "CBC"
  21.         MsgBox "中国建设银行"
  22.     Case "ABC"
  23.         MsgBox "中国农业银行"
  24.     Case Else
  25.         MsgBox "输入银行简称错误"
  26.     End Select
  27. End Sub
复制代码
第2题
  1. Sub 第二题()
  2.     Dim Num As Long    '取款金额整数,输入界面没有小数点,本次模拟不对输入的结果进行判断是否是整数
  3.     With BKI
  4.         .存款金额 = 8000                 '账户内本来有8000
  5.         .账号 = CStr(InputBox("请输入银行账号", "输入提示"))
  6.         If .账号 <> "147258" Then
  7.             MsgBox "输入账户不存在", vbExclamation + vbOKOnly, "错误提示"
  8.         Else
  9.             .密码 = Application.InputBox("请输入密码", "输入提示", , , , , , 1)
  10.             If .密码 <> 1234 Then
  11.                 MsgBox "密码有误", vbExclamation + vbOKOnly, "错误提示"
  12.             Else
  13.                 Num = Application.InputBox("请输入取款金额,只能是100的整数", "输入提示", , , , , , 1)
  14.                 If Num <= .存款金额 Then
  15.                     MsgBox "取款金额:" & Num & Chr(10) & "账户余额:" & .存款金额 - Num
  16.                 Else
  17.                     MsgBox "取款失败", vbOKOnly + vbExclamation, "错误提示"
  18.                 End If
  19.             End If
  20.         End If
  21.     End With
  22. End Sub
复制代码
第3题:感觉这个function过程挺别扭的...
  1. Sub 调用过程()
  2. Dim m  '限定输入为数字,可以是小数整数
  3. m = Application.InputBox("请输入使用功能" & Chr(10) & "1:存款" & Chr(10) & "2:取款" & Chr(10) & "3:查询余额" _
  4.         & Chr(10) & "4:退出", "提示", , , , , , 1)
  5.             BkMsg (m)
  6. End Sub
  7. Function BkMsg(n As Byte)
  8.     If n = 1 Then MsgBox "请把钞票放在存钞口,请放少于100张钞票"
  9.     If n = 2 Then Call 第二题
  10.     If n = 3 Then MsgBox BKI.存款金额
  11.     If n = 4 Then Application.Quit
  12. End Function
复制代码
附加题:
附加题一言难尽...,尽可能按照实际模拟,功能太多了,没弄那么全,限定更改密码的长度,没有限定存、取款金额必须是100整数倍,退出的时候只是隐藏了窗体
没有数据库数据,对更改的数据在关闭excel后不能保存,转账功能”对方账户“没做任何限制,实在不行了,这个题太难了


附加题.rar

49.33 KB, 下载次数: 3

点评

附加题运行无明显错误,用窗体做的很好的,额外+2分。  发表于 2014-4-26 15:18
第三题的自定义函数使用方法不正确。已达到要求的效果,不扣分。  发表于 2014-4-26 15:10
第二题密码输入01234也能通过密码验证,算一个Bug -2分。  发表于 2014-4-26 15:08

评分

参与人数 1 +20 金币 +20 收起 理由
xdragon + 20 + 20 神马都是浮云

查看全部评分

回复

使用道具 举报

发表于 2014-4-26 20:11 | 显示全部楼层
第三题如果要完整、符合实际情况,需要考虑的东西太多了。还是先把作业交了再说吧。
C04:eaglexs
第一题:
  1. Option Explicit
  2. '第一题
  3. Sub 第一题1()
  4.     Dim strBank$
  5.     strBank = Application.InputBox("请输入银行英文简称:", "简称输入", , , , , , 2)
  6.     If strBank = "ICBC" Then
  7.         MsgBox "中国工商银行"
  8.     ElseIf strBank = "CBC" Then
  9.         MsgBox "中国建设银行"
  10.     ElseIf strBank = "ABC" Then
  11.         MsgBox "中国农业银行"
  12.     Else
  13.         MsgBox "输入银行简称错误!"
  14.     End If
  15. End Sub

  16. Sub 第一题2()
  17.     Dim strBank$
  18.     strBank = Application.InputBox("请输入银行英文简称:", "简称输入", , , , , , 2)
  19.     Select Case strBank
  20.         Case "ICBC"
  21.             MsgBox "中国工商银行"
  22.         Case "CBC"
  23.             MsgBox "中国建设银行"
  24.         Case "ABC"
  25.             MsgBox "中国农业银行"
  26.         Case Else
  27.             MsgBox "输入银行简称错误!"
  28.     End Select
  29. End Sub
复制代码
第二题:
  1. Option Explicit

  2. '第二题
  3. Type AccountInfo        '用自定义数据类型保存银行账号信息
  4.     账号 As String
  5.     用户名 As String
  6.     存款金额 As Currency
  7.     密码 As String
  8. End Type

  9. Sub 第二题()
  10.     Dim Acc As AccountInfo, money!
  11.     With Acc        '录入初始信息
  12.         .账号 = "147258"
  13.         .用户名 = "eaglexs"
  14.         .存款金额 = 8000
  15.         .密码 = "1234"
  16.     End With
  17.     If Acc.账号 <> InputBox("请输入取款账号", "输入") Then
  18.         MsgBox "账户不存在!"
  19.     ElseIf Acc.密码 <> InputBox("请输入密码", "输入") Then
  20.         MsgBox "密码有误!"
  21.     Else        '当账号密码都正确时
  22.         money = Round(Application.InputBox("请输入取款金额:", "输入", , , , , , 1), 2)
  23.         If money < 0 Or money > Acc.存款金额 Then
  24.             MsgBox "取款失败"
  25.         Else
  26.             MsgBox "取款成功!取款金额" & money & "元" & vbCrLf & "账户余额" & Acc.存款金额 - money & "元", , "提示"
  27.         End If
  28.     End If
  29. End Sub
复制代码
第三题:
  1. Option Explicit

  2. '第三题,已结合附加题
  3. Type AccountInfo
  4.     账号 As String
  5.     用户名 As String
  6.     存款金额 As Currency
  7.     密码 As String
  8. End Type

  9. Dim bAcc As AccountInfo     '声明bAcc为模块级变量,重复执行主过程main时,其中的值可以保留

  10. Sub main()
  11.     Dim x As Byte
  12.     On Error Resume Next    '错误跳过
  13. start:
  14.     x = Int(Application.InputBox("请输入您要操作的功能:" & vbCrLf & "输入1为开户," & vbTab & _
  15.         "输入2为存款," & vbCr & "输入3为取款," & vbTab & "输入4为查询余额," _
  16.         & vbCr & "输入5为退出", "功能选择", , , , , , 1))
  17.     If Err.Number > 0 Then          '如果出错(输入的数字超出Byte范围)
  18.         Err.Clear                   '先清除错误
  19.         MsgBox "功能选择错误,请重新选择!"
  20.         GoTo start                  '到start处重新开始选择
  21.     ElseIf x = 0 Or x > 5 Then      '如果输入的值不是1、2、3、4、5,则重新开始
  22.         MsgBox "功能选择错误,请重新选择!"
  23.         GoTo start
  24.     End If
  25.     Select Case x
  26.         Case Is = 1         '对应值调用相应子过程
  27.             开户
  28.         Case Is = 2
  29.             存款
  30.         Case Is = 3
  31.             取款
  32.         Case Is = 4
  33.             查询余额
  34.         Case Else
  35.             Exit Sub        '选择5退出过程
  36.     End Select
  37. End Sub

  38. Sub 开户()
  39.     '模拟开户,重新输入后,原先的值将清空
  40.     bAcc.账号 = Application.InputBox("请输入开户银行账号", "开户输入", , , , , , 2)
  41.     bAcc.用户名 = Application.InputBox("请输入开户用户名", "开户输入", , , , , , 2)
  42.     bAcc.密码 = Application.InputBox("请输入开户密码", "开户输入", , , , , , 2)
  43.     bAcc.存款金额 = Application.InputBox("请输入存入金额", "开户输入", , , , , , 1)
  44. End Sub

  45. Function AccYoN() As Boolean    '自定义函数,用过判断输入的账号、密码是否正确
  46.     Dim zh$, psw$
  47.     On Error Resume Next
  48.     zh = InputBox("请输入银行账号", "输入")
  49.     If zh <> bAcc.账号 Then
  50.         MsgBox "账户不存在!"
  51.         AccYoN = False      '账号不正确,返回false
  52.     ElseIf bAcc.密码 <> InputBox("请输入密码", "输入") Then
  53.         MsgBox "密码有误!"
  54.         AccYoN = False      '密码不正确,返回false
  55.     Else
  56.         AccYoN = True       '账号密码正确,返回true
  57.     End If
  58. End Function

  59. Sub 存款()
  60.     Dim money!
  61.     If AccYoN Then      '如果账号密码正确
  62.         money = Round(Application.InputBox("请输入存款金额:", "存款", , , , , , 1), 2)
  63.         If money < 0 Then
  64.             MsgBox "存款失败,金额有误!"
  65.         Else
  66.             bAcc.存款金额 = bAcc.存款金额 + money       '存款金额增加
  67.             MsgBox "存款成功!存款金额" & money & "元" & vbCr & "账户余额" & bAcc.存款金额 & "元", , "提示"
  68.         End If
  69.     End If
  70. End Sub

  71. Sub 取款()
  72.     Dim money!
  73.     If AccYoN Then
  74.         money = Round(Application.InputBox("请输入取款金额:", "取款", , , , , , 1), 2)
  75.         If money < 0 Or money > bAcc.存款金额 Then      '如果输入的金额小于0或超过存款金额
  76.             MsgBox "取款失败"
  77.         Else
  78.             bAcc.存款金额 = bAcc.存款金额 - money       '存款金额减少
  79.             MsgBox "取款成功!取款金额" & money & "元" & vbCrLf & "账户余额" & bAcc.存款金额 & "元", , "提示"
  80.         End If
  81.     End If
  82. End Sub

  83. Sub 查询余额()
  84.     Dim money!
  85.     If AccYoN Then
  86.         MsgBox "账号 " & bAcc.账号 & "的存款余额为" & bAcc.存款金额 & "元。"
  87.     End If
  88. End Sub
复制代码

点评

第三题测试没问题,附加题也符合要求。额外+2分。  发表于 2014-4-28 17:09
第一题 按照题目要求应该使用inputbox,而不是application.inputbox ,没有按照题目要求完成 -2分  发表于 2014-4-28 16:54

评分

参与人数 1 +20 金币 +20 收起 理由
xdragon + 20 + 20 神马都是浮云

查看全部评分

回复

使用道具 举报

发表于 2014-4-27 18:39 | 显示全部楼层
本帖最后由 开心妙妙 于 2014-4-29 13:16 编辑

C16:开心妙妙,附加题把我给转晕了,可能好多错漏的地方,学委辛苦批改指正
  1. '模块1代码
  2. Option Explicit
  3. Sub 第一题1()
  4.     Dim st[        DISCUZ_CODE_6        ]nbsp;   '定义变量为字符串型
  5.     st = InputBox("请输入银行简称", "欢迎使用Excelpx电子银行服务系统")  '用InputBox输入信息赋值给变量st
  6.     st = UCase(st)                   '将字符串转为大写
  7.     If st = "ICBC" Then               '判断如果输入值等于"ICBC"
  8.         MsgBox "中国工商银行"         '显示:"中国工商银行"
  9.     ElseIf st = "CBC" Then
  10.         MsgBox "中国建设银行"
  11.     ElseIf st = "ABC" Then
  12.         MsgBox "中国农业银行"
  13.     Else                               '否则
  14.         MsgBox "输入银行简称错误"      '显示:"输入简称错误"
  15.     End If
  16. End Sub
  17. Sub 第一题2()
  18.     Dim st[        DISCUZ_CODE_6        ]nbsp;   '
  19.     st = InputBox("请输入银行简称", "欢迎使用Excelpx电子银行服务")
  20.     Select Case UCase(st)                     '检测ST值,并将小写转为大写
  21.     Case "ICBC"                               '检测ST是ICBC
  22.         MsgBox "中国工商银行"                 '显示:"中国工商银行"
  23.     Case "CBC"
  24.         MsgBox "中国建设银行"
  25.     Case "ABC"
  26.         MsgBox "中国农业银行"
  27.     Case Else                                 '否则
  28.         MsgBox "输入银行简称错误"             '显示:"输入简称错误"
  29.     End Select
  30. End Sub
  31. Sub 第二题()
  32.     Dim 账号 As String, 用户名 As String      '定义账号和用户名字符串型
  33.     Dim 存款金额 As Currency, 密码 As String  '定义存款金额货币型,密码字符串型
  34.     Dim 取款金额 As Currency                  '定义取款金额变量
  35.     账号 = "147258": 用户名 = "开心妙妙"       '账号及用户名赋值给变量
  36.     存款金额 = 8000: 密码 = "1234"             '存款金额及密码赋值给变量
  37.     账号 = InputBox("请输入银行账号", "欢迎使用Excelpx电子银行服务")  '用InputBox输入信息赋值给变量
  38.     If 账号 = "147258" Then                     '判断如果账号="147258"
  39.         密码 = InputBox("请输入密码", "欢迎使用Excelpx电子银行服务")  '那么用InputBox输入密码信息赋值给变量
  40.         If 密码 = "1234" Then                     '判断如果密码="1234"
  41.             取款金额 = InputBox("请输入取款金额", "欢迎使用Excelpx电子银行服务")    '那么用用InputBox输入取款金额赋值给变量
  42.             If 取款金额 > 0 And 取款金额 < 8000 Then    '判断取款金额大于0和小于8000
  43.                 MsgBox "取款金额:" & 取款金额           '那么显示取款金额数量
  44.             Else                                 '否则
  45.                 MsgBox "取款失败"                 '显示"取款失败"
  46.             End If
  47.         Else                                     '否则
  48.             MsgBox "密码有误"                     '显示"密码有误"
  49.         End If
  50.     Else                                        '否则
  51.         MsgBox "账户不存在"                     '显示"账户不存在"
  52.     End If
  53. End Sub
  54. '第三题自定义函数
  55. Function 电子银行(n As Integer)    '自定义函数,参数N要传递选择的数据
  56.     Select Case n                  '检测要选择的数据
  57.     Case 1                         '表达式如果是1,则显示"存款"
  58.         MsgBox "存款"
  59.     Case 2                         '表达式如果是2,则显示"取款",调用模块1.第二题过程
  60.         MsgBox "取款"
  61.         Call 模块1.第二题
  62.     Case 3                         '表达式如果是3,则显示"查询余额"
  63.         MsgBox "查询余额"
  64.     Case 4                          '表达式如果是4,退出程序
  65.         MsgBox "退出程序"
  66.         Exit Function
  67.     End Select
  68. End Function
  69. Sub 第三题()
  70.     Dim n As Integer
  71.     On Error Resume Next  '容错处理
  72.     '用InputBox输入信息赋值给变量n,Chr(10)表示强制换行
  73.     n = InputBox("请输入:" & Chr(10) & "1、存款" & Chr(10) & "2、取款" & Chr(10) & "3、查询余额" & Chr(10) & "4、退出程序")
  74.     If n >= 1 And n <= 4 Then   '检测输入的数字是否1-4的数字
  75.         电子银行 (n)    '执行自定义函数n参数的内容
  76.     Else
  77.         MsgBox "操作错误,退出程序"
  78.     End If
  79. End Sub
  80. '附加题:独立模块2
  81. Option Explicit
  82. Dim 账号 As String, 用户名 As String    '模块级变量:账号和用户名字符串型
  83. Dim 存款余额 As Currency                '模块级变量:存款余额货币型
  84. Dim 密码 As String                      '模块级变量:密码字符型
  85. Sub 立户()
  86. Dim 存款金额 As Currency                 '过程级变量:存款金额货型
  87.     账号 = "147258": 用户名 = "开心妙妙"       '账号及用户名赋值给变量
  88.     密码 = "1234"             '存款金额及密码赋值给变量
  89.     存款金额 = 8000            '8000赋值组存款金额
  90.     存款余额 = 存款余额 + 存款金额 '将存款金额赋值以存款余额, 这个作用便于其它过程调用
  91.     End Sub
  92. Sub 存款()
  93. Dim 存款金额 As Currency
  94. If 账号 = "" Then
  95.       Call 模块2.立户
  96.       存款余额 = 存款余额 + 存款金额
  97. End If

  98.     账号 = InputBox("请输入银行账号", "欢迎使用Excelpx电子银行服务")  '用InputBox输入信息赋值给变量
  99.     If 账号 = "147258" Then                     '判断如果账号="147258"
  100.         密码 = InputBox("请输入密码", "欢迎使用Excelpx电子银行服务")  '那么用InputBox输入密码信息赋值给变量
  101.         If 密码 = "1234" Then                     '判断如果密码="1234"
  102.             存款金额 = InputBox("请输入存款金额", "欢迎使用Excelpx电子银行服务")    '那么用用InputBox输入取款金额赋值给变量
  103.             存款余额 = 存款余额 + 存款金额
  104.              MsgBox "存款金额:" & 存款金额 & Chr(10) & "存款余额:" & 存款余额
  105.         Else                                     '否则
  106.             MsgBox "密码有误"                     '显示"密码有误"
  107.         End If
  108.     Else                                        '否则
  109.         MsgBox "账户不存在"                     '显示"账户不存在"
  110.     End If
  111.    End Sub
  112. Sub 取款()
  113.     Dim 取款金额 As Currency                  '定义取款金额变量
  114.     If 账号 = "" Then Call 模块2.立户

  115.     账号 = InputBox("请输入银行账号", "欢迎使用Excelpx电子银行服务")  '用InputBox输入信息赋值给变量
  116.     If 账号 = "147258" Then                     '判断如果账号="147258"
  117.         密码 = InputBox("请输入密码", "欢迎使用Excelpx电子银行服务")  '那么用InputBox输入密码信息赋值给变量
  118.         If 密码 = "1234" Then                     '判断如果密码="1234"
  119.             取款金额 = InputBox("请输入取款金额", "欢迎使用Excelpx电子银行服务")    '那么用用InputBox输入取款金额赋值给变量
  120.             If 取款金额 > 0 And 取款金额 < 存款余额 Then    '判断取款金额大于0和小于存款金额
  121.                 存款余额 = 存款余额 - 取款金额
  122.                 MsgBox "取款金额:" & 取款金额 & Chr(10) & "存款余额:" & 存款余额
  123.                 '那么显示取款金额数量及存款余款
  124.             Else                                 '否则
  125.                 MsgBox "取款失败"                 '显示"取款失败"
  126.             End If
  127.         Else                                     '否则
  128.             MsgBox "密码有误"                     '显示"密码有误"
  129.         End If
  130.     Else                                        '否则
  131.         MsgBox "账户不存在"                     '显示"账户不存在"
  132.     End If
  133.    End Sub
  134. Function 电子银行(n As Integer)    '自定义函数,参数N要传递选择的数据
  135.     Select Case n                  '检测要选择的数据
  136.     Case 1                         '表达式如果是1,则显示"存款"
  137.         MsgBox "存款"
  138.         Call 模块2.存款
  139.     Case 2                         '表达式如果是2,则显示"取款",调用模块1.第二题过程
  140.         MsgBox "取款"
  141.         Call 模块2.取款
  142.     Case 3                         '表达式如果是3,则显示"查询余额"
  143.                 MsgBox "查询余额"
  144.                 MsgBox "存款余额:" & 存款余额
  145.     Case 4                          '表达式如果是4,退出程序
  146.         MsgBox "退出程序"
  147.         Exit Function
  148.     End Select
  149. End Function
  150. Sub 附加题()
  151.     Dim n As Integer
  152.     On Error Resume Next    '容错处理
  153.      '用InputBox输入信息赋值给变量n,Chr(10)表示强制换行
  154.     n = InputBox("请输入:" & Chr(10) & "1、存款" & Chr(10) & "2、取款" & Chr(10) & "3、查询余额" & Chr(10) & "4、退出程序")
  155.     If n >= 1 And n <= 4 Then   '检测输入的数字是否1-4的数字
  156.         电子银行 (n)    '执行自定义函数n参数的内容
  157.     Else
  158.         MsgBox "操作错误,退出程序"
  159.     End If
  160.   End Sub

复制代码

复制代码

点评

附加题基本符合要求,退出程序没有写过程。额外+2分  发表于 2014-4-29 00:04
第三题Function使用方法不对,-2分  发表于 2014-4-28 17:24
第二题在输入取款数字后,没有提示余额,算一缺陷 -2分  发表于 2014-4-28 17:23
第二题在输入取款金额时,如果取消会报错。  发表于 2014-4-28 17:22

评分

参与人数 1 +18 金币 +18 收起 理由
xdragon + 18 + 18 很给力!

查看全部评分

回复

使用道具 举报

发表于 2014-4-27 21:49 | 显示全部楼层
Sub 银行1()
Dim SHURU As String
SHURU = InputBox("输入银行简称:")
If SHURU = "ICBC" Then
MsgBox "中国工商银行"
ElseIf SHURU = "CBC" Then
MsgBox "中国建设银行"
ElseIf SHURU = "ABC" Then
MsgBox "中国农业银行"
Else
MsgBox "银行输入错误名称!"
End If
End Sub


Sub 银行2()
Dim SHURU As String
SHURU = InputBox("输入银行简称:")
Select Case SHURU
Case Is = "ICBC"
MsgBox "中国工商银行"
Case Is = "CBC"
MsgBox "中国建设银行"
Case Is = "ABC"
MsgBox "中国农业银行"
Case Else
MsgBox "银行输入错误名称!"
End Select
End Sub

Sub bank()
Dim zhanghao As Long       '学委这道题是我第一个思路,但是写到最后发现不会跳转语句,请求给予解答
Dim yonghuming As String
Dim jine As Double
Dim mima As Integer
   zhanghao = 147258
   yonghuming = "yy183413821"
   jine = 8000
   mima = 1234
Dim a As Variant
Dim b As Variant
Dim c As Double
a = InputBox("输入账号:")
If a = zhanghao Then
Else
MsgBox "账号不存在"
GoTo bank
End If
b = InputBox("请输入密码:")
If b = mima Then
Else
MsgBox "密码有误"
End If
c = InputBox("请输入取款金额:")
If c > 0 And c <= jine Then
MsgBox "账户余额为:" & jine - c
Else
MsgBox "取款失败"
End If
End Sub


Sub bank1()
Dim zhanghao As Long
Dim yonghuming As String
Dim jine As Double
Dim mima As Integer
   zhanghao = 147258
   yonghuming = "yy183413821"
   jine = 8000
   mima = 1234
Dim a As Variant
Dim b As Variant
Dim c As Double
a = InputBox("请输入银行账号:")
If a = zhanghao Then
b = InputBox("请输入密码:")
If b = mima Then
c = InputBox("请输入取款金额:")
If c > 0 And c < jine Then
MsgBox "账户余额为:" & jine - c
Else
MsgBox "取款失败"
End If
Else
MsgBox "密码有误"
End If
Else
MsgBox "账号不存在"
End If

End Sub

点评

到明天晚上8点为截止时间,加油,还有第三题未做哦。  发表于 2014-4-29 00:14
第二题密码和账户ID分别输入01234和0147258都能通过,算是一个bug,-2分  发表于 2014-4-29 00:12
goto语句是在过程中使用,跳转的程序标签应该以冒号结尾的。具体你可以参见GOTO的帮助信息。  发表于 2014-4-29 00:10

评分

参与人数 1 +8 金币 +8 收起 理由
xdragon + 8 + 8 第三题未做-10分。。。

查看全部评分

回复

使用道具 举报

发表于 2014-4-27 23:17 | 显示全部楼层
  1. Sub 第一题1()
  2. Dim a As String
  3. a = VBA.InputBox("请输入银行简称")
  4. If a = "ICBC" Then
  5. MsgBox "中国工商银行"
  6. ElseIf a = "CBC" Then
  7.     MsgBox "中国建设银行"
  8. ElseIf a = "ABC" Then
  9.     MsgBox "中国农业银行"
  10. Else
  11.     MsgBox "输入银行简称错误"
  12. End If
  13. End Sub
  14. Sub 第一题2()
  15. Dim a As String
  16. a = VBA.InputBox("请输入银行简称")
  17. Select Case a
  18. Case "ICBC"
  19.     MsgBox "中国工商银行"
  20. Case "CBC"
  21.     MsgBox "中国建设银行"
  22. Case "ABC"
  23.     MsgBox "中国农业银行"
  24. Case Else
  25.     MsgBox "输入银行简称错误"
  26. End Select
  27. End Sub
  28. Sub 第二题()
  29. Dim 账号$, 用户名$, 存款金额#, 密码$
  30. Dim a$, b$, c#
  31. 账号 = "147258"
  32. 用户名 = "as0810114"
  33. 存款金额 = 8000
  34. 密码 = "1234"
  35. a = InputBox("请输入账号")
  36. If a = 账号 Then
  37.     b = InputBox("请输入密码")
  38.     If b = 密码 Then
  39.         c = InputBox("请输入取款金额")
  40.         If c > 0 And c <= 存款金额 Then
  41.             MsgBox "取款金额为:" & c & Chr(10) & "账户余额为:" & 存款金额 - c     '输出取款金额以及存款余额
  42.         Else
  43.             MsgBox "取款失败"
  44.         End If
  45.     Else
  46.         MsgBox "密码有误"
  47.     End If
  48. Else
  49.     MsgBox "账户不存在"
  50. End If
  51. End Sub

  52. Function 取款(a)
  53. If a = 1 Then
  54. 取款 = "存款"
  55. ElseIf a = 2 Then
  56. Call 第二题
  57. 取款 = "取款完成"
  58. ElseIf a = 3 Then
  59. 取款 = "查询余额"
  60. Else
  61. ThisWorkbook.Close
  62. End If
  63. End Function

  64. Sub demo()
  65. Dim a
  66. a = InputBox("请输入数字代码" & Chr(10) & "1:存款" & Chr(10) & "2:取款" & Chr(10) & "3:查询余额" & Chr(10) & "4:退出系统", "您好!")
  67. MsgBox 取款(a)
  68. End Sub
复制代码

点评

符合题目要求,附加题呢?。。。  发表于 2014-4-29 00:23

评分

参与人数 1 +20 金币 +20 收起 理由
xdragon + 20 + 20 神马都是浮云

查看全部评分

回复

使用道具 举报

发表于 2014-4-29 14:12 | 显示全部楼层
本帖最后由 很幸福 于 2014-4-29 16:47 编辑

第一题:
Sub demo1()
Dim a As String
a = InputBox("请输入银行简称")
If a = "icbc" Then
MsgBox "中国工商银行"
ElseIf a = "cbc" Then
MsgBox "中国建设银行"
ElseIf a = "abc" Then
MsgBox "中国农业银行"
Else
MsgBox "输入简称错误!"
End If

End Sub

第二题:
Sub demo2()
Dim stu As stuinfor
stu.账号 = "147258"
stu.用户名 = "很幸福"
stu.密码 = "1234"
End Sub

Sub demo3()
Dim a As Integer
      If stu.账号 <> "147258" Then
      MsgBox "户名不存在"
      Else
      If stu.密码 <> "1234" Then
      MsgBox "密码有误"
      Else



End If

End If

End Sub


呜。。。。。。。。不会写{:091:}

点评

第二题和第三题都不正确 。。。 具体请参照我组满分同学的代码哈。。。如还有问题可以在群里问。。。加油  发表于 2014-4-29 21:52
第一题未用2种方法,只能得-3分。。。  发表于 2014-4-29 20:05

评分

参与人数 1 +6 金币 +6 收起 理由
xdragon + 6 + 6 淡定

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 07:50 , Processed in 0.427754 second(s), 24 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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