Excel精英培训网

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

[已解决]求助:动态下拉菜单

[复制链接]
发表于 2012-1-15 10:01 | 显示全部楼层 |阅读模式
求助2012工时统计.rar (144.5 KB, 下载次数: 8)
发表于 2012-1-15 10:05 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2012-1-15 10:09 | 显示全部楼层
sunjing-zxl 发表于 2012-1-15 10:05
不太明白你的意识

就是让C2的下拉菜单里有数据库d列的唯一设备的名称。
回复

使用道具 举报

发表于 2012-1-15 10:29 | 显示全部楼层    本楼为最佳答案   
本帖最后由 sunjing-zxl 于 2012-1-15 10:33 编辑


  1. Sub 下拉菜单()
  2.     Dim arr
  3.     Dim i As Long, str As String
  4.     Dim d As New dictionary
  5.     With Sheets("数据库")
  6.         arr = .Range("D1:D" & .[D65536].End(xlUp).row)
  7.     End With
  8.     For i = 1 To UBound(arr)
  9.         d(arr(i, 1)) = d(arr(i, 1)) + 1
  10.     Next i
  11.     arr = d.Keys()
  12.     str = Join(arr, ",")
  13.     With Sheets("录入数据").Range("C2").Validation
  14.         .Delete
  15.         .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
  16.                                                                            xlBetween, Formula1:=str   
  17.     End With
  18.     Set d = Nothing
  19. End Sub
  20. '这段代码放到模块里面
复制代码
  1. Private Sub Worksheet_Change(ByVal Target As Range)    '自动添加日期
  2.     If Target.Column = 4 Then
  3.         Call 下拉菜单
  4.     End If
  5.     If Target.Column = 4 Then
  6.         Target.Offset(, -3) = VBA.Year(Date)
  7.         Target.Offset(, -2) = VBA.Month(Date)
  8.         Target.Offset(, -1) = VBA.Day(Date)
  9.     End If
  10. End Sub
  11. '上面这个在你原有代码里面加三句代码
复制代码
附件: 求助2012工时统计-sunjing.rar (146.03 KB, 下载次数: 33)
回复

使用道具 举报

 楼主| 发表于 2012-1-15 21:33 | 显示全部楼层
sunjing-zxl 发表于 2012-1-15 10:29
附件:

谢谢了!忠心的感谢,辛苦啊!!!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 07:41 , Processed in 0.270015 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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