Excel精英培训网

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

[通知] 统计VBA学习小组正式组的积分帖之作业上交贴(第22周)

  [复制链接]
发表于 2012-6-13 19:39 | 显示全部楼层 |阅读模式
活动类型:
作业上交
开始时间:
2012-6-13 19:38 至 2012-6-19 19:38 商定
活动地点:
VBA学习小组
性别:
不限
已报名人数:
15

本帖最后由 冠军欧洲2010 于 2012-6-21 20:01 编辑

说明:
统计帖每个学员只能跟帖回复一次,也就是在原来回复楼层的基础上点编缉,不要一个链接一层楼,否则不计算积分。

各小组学员上交作业时,一定要点击我要参加注明自己的新组编号和论坛ID如果点击过我要参加但没有跟帖提交作业的,扣该学员5积分;如果跟帖提交了作业,但没有点我要参加的,不给予评分。

请各学员看清上面的说明,免得被扣了分分!
本帖为仅楼主可见帖,直接回复即可!
作业链接:
http://www.excelpx.com/thread-248433-1-1.html

已通过 (14 人)

  留言 申请时间
ls

h22:ls

2012-6-20 00:39
hactnet

H组 h15-hactnet

2012-6-19 14:12
梅一枝

A05 梅一枝

2012-6-19 11:37
开心妙妙

B08:开心妙妙

2012-6-19 10:21
jxncfxsf

D24组: jxncfxsf

2012-6-19 08:44
无聊的疯子 2012-6-19 08:35
我不知道呀

8组 A23 我不知道呀 我要参加

2012-6-19 06:38
byhdch

A09:byhdch

2012-6-19 01:03

暂未通过 (1 人)

  留言 申请时间
xiaoni 2012-6-21 22:17
发表于 2012-6-14 14:27 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2012-6-14 15:10 | 显示全部楼层
w2001pf 发表于 2012-6-14 14:27
作业没有链接?

我也没有看到链接呢。。
我是先把作业上交帖给发出来了。
呵呵。
回复

使用道具 举报

发表于 2012-6-17 14:48 | 显示全部楼层
C12:hrpotter
  1. Private Sub ComboBox1_Change()
  2.     Dim ar()
  3.     Dim i As Integer, k As Integer
  4.     For i = 5 To Range("d65536").End(xlUp).Row
  5.         If Cells(i, 3) = ComboBox1.Value Then
  6.             Do
  7.                 k = k + 1
  8.                 ReDim Preserve ar(1 To k)
  9.                 ar(k) = Cells(i, 4)
  10.                 i = i + 1
  11.             Loop Until Len(Cells(i, 3)) Or Len(Cells(i, 4)) = 0
  12.             ListBox1.List = ar
  13.             Exit Sub
  14.         End If
  15.     Next
  16. End Sub
  17. Private Sub CommandButton1_Click()
  18.     Dim i As Integer
  19.     If ListBox1.ListIndex = -1 Then MsgBox "请选择员工姓名!": Exit Sub
  20.     For i = 5 To Range("d65536").End(xlUp).Row
  21.         If Cells(i, 4) = ListBox1.List(ListBox1.ListIndex) And CStr(Cells(i, 5)) = TextBox1.Value Then
  22.             MsgBox "登陆成功"
  23.             Unload Me
  24.             Exit Sub
  25.         End If
  26.     Next
  27.     MsgBox "密码错误,请重新输入!"
  28.     TextBox1.SetFocus
  29.     TextBox1 = ""
  30. End Sub
  31. Private Sub CommandButton2_Click()
  32.     Unload Me
  33. End Sub
  34. Private Sub UserForm_Initialize()
  35.     Dim i As Integer
  36.     For i = 5 To Range("c65536").End(xlUp).Row
  37.         If Len(Cells(i, 3)) Then
  38.             ComboBox1.AddItem Cells(i, 3)
  39.         End If
  40.     Next
  41. End Sub
复制代码
C12-hrpotter-VBA第17课作业.rar (40.43 KB, 下载次数: 17)

点评

这个题如果调用MATCH和VLOOKUP代码会简化一些  发表于 2012-6-17 14:57

评分

参与人数 1金币 +10 收起 理由
兰色幻想 + 10 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2012-6-17 17:01 | 显示全部楼层
忘记文本框输入的值返回的是文本,折腾了半天,结果勉强正确。 VBA第17课作业-yl_li.rar (40.25 KB, 下载次数: 1)

评分

参与人数 1金币 +5 收起 理由
兰色幻想 + 5 你这个答案太复杂了,如果有几十个部分,你.

查看全部评分

回复

使用道具 举报

发表于 2012-6-17 20:50 | 显示全部楼层
B02:wangfengren上交第17讲窗体作业,见附件.

B02wangfengrenVBA第17课作业.rar

38.89 KB, 下载次数: 14

评分

参与人数 1金币 +5 收起 理由
兰色幻想 + 5 结果正确,代码复杂

查看全部评分

回复

使用道具 举报

发表于 2012-6-18 16:28 | 显示全部楼层
H07:w2001pf VBA第17课作业.rar (41.72 KB, 下载次数: 16)

评分

参与人数 1金币 +6 收起 理由
兰色幻想 + 6 代码不够灵活

查看全部评分

回复

使用道具 举报

发表于 2012-6-18 19:49 | 显示全部楼层
写的时候感觉不是很好,感觉没有很好的使用按钮的属性

VBA第17课作业【b17-dsjohn】.xls

79.5 KB, 下载次数: 21

评分

参与人数 1金币 +10 收起 理由
兰色幻想 + 10 答案正确

查看全部评分

回复

使用道具 举报

发表于 2012-6-18 23:15 | 显示全部楼层

  1. Private Sub ComboBox1_Change()
  2. Dim arr
  3. Dim n As Integer
  4. For n = ListBox1.ListCount - 1 To 0 Step -1
  5.     ListBox1.RemoveItem n
  6. Next n


  7. arr = Worksheets("Sheet1").Range("c5:e14").Value
  8. For n = 1 To UBound(arr)

  9. If arr(n, 1) = "" Then
  10.      arr(n, 1) = arr(n - 1, 1)
  11. End If

  12. Next n

  13. For n = 1 To UBound(arr)
  14. If ComboBox1.Value = arr(n, 1) Then
  15. ListBox1.AddItem arr(n, 2)
  16. End If
  17. Next n

  18. End Sub


  19. Private Sub CommandButton1_Click()
  20. arr = Worksheets("Sheet1").Range("c5:e14").Value
  21. Dim n As Integer, str As String, m As Integer, i As Integer
  22. If ListBox1.ListIndex = -1 Or TextBox1.Value = "" Then Exit Sub

  23. For i = 0 To ListBox1.ListCount - 1
  24.     If ListBox1.Selected(i) Then _
  25.         str = ListBox1.List(i)

  26. Next i

  27. m = TextBox1.Value
  28. For n = 1 To UBound(arr)
  29.     If str = arr(n, 2) Then
  30.    
  31.         If m = arr(n, 3) Then
  32.    
  33.                 MsgBox "登陆成功"
  34.                 Exit For
  35.         Else
  36.                 MsgBox "密码错误,请重新输入"
  37.                 TextBox1.Value = ""
  38.                 Exit For
  39.         End If
  40.    
  41.    
  42.     End If
  43. Next n

  44. End Sub


  45. Private Sub CommandButton2_Click()
  46. Unload Me
  47. End Sub

  48. Private Sub UserForm_Initialize()

  49. Dim arr, arr1(1 To 300)

  50. Dim n As Integer
  51. arr = Worksheets("Sheet1").Range("c5:e14").Value


  52. x = 0
  53. For n = 1 To UBound(arr)
  54. If arr(n, 1) <> "" Then
  55.     x = x + 1
  56.     arr1(x) = arr(n, 1)

  57. Else: arr(n, 1) = arr(n - 1, 1)
  58. End If
  59. Next n
  60. For n = 1 To x
  61. ComboBox1.AddItem arr1(n)
  62. Next n

  63. End Sub
复制代码



VBA第17课作业.rar

43.13 KB, 下载次数: 12

评分

参与人数 1金币 +10 收起 理由
兰色幻想 + 10 答案正确

查看全部评分

回复

使用道具 举报

发表于 2012-6-19 01:00 | 显示全部楼层
本帖最后由 byhdch 于 2012-6-19 13:43 编辑

A09byhdch VBA第19讲作业

  1. Private Sub UserForm_Initialize()<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
  2.     Dim arr, arr1(1 To 100, 1 To 1)
  3.     Dim x As Integer
  4.     Dim d As New Dictionary
  5.     arr = Range("c5:e14")
  6.     For x = 1 To UBound(arr)
  7.         If arr(x, 1) = "" Then arr(x, 1) = arr(x - 1, 1)
  8.         d(arr(x, 1)) = d.Count
  9.         arr1(d.Count, 1) = arr(x, 1)
  10.     Next x
  11.     部门.List = arr1
  12. End Sub

  13. Private Sub 部门_Change()
  14.     Dim arr, arr1(1 To 100, 1 To 1), arr2(1 To 100, 1 To 1), arr3(1 To 100, 1 To 1)
  15.     Dim x, k, m, n As Integer
  16.     Dim d As New Dictionary
  17.     arr = Range("c5:d14")
  18.     For x = 1 To UBound(arr)
  19.         If arr(x, 1) = "" Then arr(x, 1) = arr(x - 1, 1)
  20.         If arr(x, 1) = "销售部" Then
  21.             k = k + 1
  22.             arr1(k, 1) = arr(x, 2)
  23.         ElseIf arr(x, 1) = "客服部" Then
  24.             m = m + 1
  25.             arr2(m, 1) = arr(x, 2)
  26.         ElseIf arr(x, 1) = "财务部" Then
  27.             n = n + 1
  28.             arr3(n, 1) = arr(x, 2)
  29.         End If
  30.     Next x
  31.     If 部门.Value = "销售部" Then ListBox1.List = arr1
  32.     If 部门.Value = "客服部" Then ListBox1.List = arr2
  33.     If 部门.Value = "财务部" Then ListBox1.List = arr3
  34. End Sub

  35. Private Sub 部门_Enter()
  36.     部门.DropDown
  37. End Sub

  38. Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  39.     If Sheet1.Range("D:D").Find(ListBox1.Value).Row = Sheet1.Range("E:E").Find(TextBox1.Value).Row Then
  40.         MsgBox "登录成功"
  41.         Exit Sub
  42.     Else
  43.         MsgBox "密码错误,请重新输入"
  44.     End If
  45. End Sub

  46. Private Sub CommandButton2_Click()
  47.     Unload Userform1
  48. End Sub
复制代码
A09byhdch VBA第19讲作业.rar (41.41 KB, 下载次数: 4)

评分

参与人数 1金币 +6 收起 理由
兰色幻想 + 6 答案正确,代码有些复杂了

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-5 03:32 , Processed in 0.403129 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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