Excel精英培训网

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

[已解决]请教各位:如何把我表格里面的字母代号挑出来并得出计数值。

[复制链接]
发表于 2011-11-2 23:18 | 显示全部楼层 |阅读模式
本帖最后由 hsy873399 于 2011-11-2 23:19 编辑

不挑数字和日期。值判断字母代号个数(就是非数值也不是日期)。并计数。 未命名.jpg 有什么办法啊?VBA代码哈
最佳答案
2011-11-3 00:55
  1. Sub 不重复字母()
  2. Dim arr, X%
  3. Sheet1.Range("F:G").Clear
  4. arr = Sheet1.UsedRange
  5. For Each RAN In arr
  6. 'If TypeName(RAN) = "String" Then '如果 2011.10.1 不按日期格式处理 用这一句
  7. If TypeName(RAN) = "String" And Not IsDate(Replace(RAN, ".", "-")) Then
  8.   X = X + 1
  9. End If
  10. Next
  11. MsgBox "数据区域有" & X & "个"
  12. End Sub
复制代码
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2011-11-2 23:26 | 显示全部楼层
上附件,,用字典 这个问题最好解决了
回复

使用道具 举报

 楼主| 发表于 2011-11-2 23:50 | 显示全部楼层
回复 mxg825 的帖子

123.rar (4.17 KB, 下载次数: 18)
回复

使用道具 举报

发表于 2011-11-3 00:14 | 显示全部楼层
2011.10.1  不是日期格式,,,要不要当日期处理?
回复

使用道具 举报

发表于 2011-11-3 00:18 | 显示全部楼层
路过,
没看懂题意
回复

使用道具 举报

发表于 2011-11-3 00:20 | 显示全部楼层
  1. Sub 不重复字母()
  2. Dim arr, d As Object, RAN
  3. On Error Resume Next
  4. Set d = CreateObject("scripting.dictionary")
  5. Sheet1.Range("F:G").Clear
  6. arr = Sheet1.UsedRange
  7. d("字符") = "出现次数"
  8. For Each RAN In arr
  9. 'If TypeName(RAN) = "String" Then '如果 2011.10.1 不按日期格式处理 用这一句
  10. If TypeName(RAN) = "String" And Not IsDate(Replace(RAN, ".", "-")) Then
  11. d(RAN) = d(RAN) + 1
  12. End If
  13. Next
  14. Sheet1.Range("F1").Resize(d.Count) = Application.Transpose(d.Keys)
  15. Sheet1.Range("G1").Resize(d.Count) = Application.Transpose(d.Items)
  16. End Sub
复制代码

123.rar

9.87 KB, 下载次数: 3

回复

使用道具 举报

 楼主| 发表于 2011-11-3 00:24 | 显示全部楼层
本帖最后由 hsy873399 于 2011-11-3 00:28 编辑

回复 mxg825 的帖子

非常感谢!不过不能解决我的问题。我的意思不是要得出几次。我的意思是绿色区域的字母代号一共有7个。统计个数。
回复

使用道具 举报

发表于 2011-11-3 00:32 | 显示全部楼层
那你要说清楚点呀!
把结果 写出来 看看!
回复

使用道具 举报

 楼主| 发表于 2011-11-3 00:41 | 显示全部楼层
回复 mxg825 的帖子

未命名.jpg 结果就是要统计这个区域里面有多少个字母所组成的代号。多少个。比如这里面现在是10个。
回复

使用道具 举报

发表于 2011-11-3 00:55 | 显示全部楼层    本楼为最佳答案   
  1. Sub 不重复字母()
  2. Dim arr, X%
  3. Sheet1.Range("F:G").Clear
  4. arr = Sheet1.UsedRange
  5. For Each RAN In arr
  6. 'If TypeName(RAN) = "String" Then '如果 2011.10.1 不按日期格式处理 用这一句
  7. If TypeName(RAN) = "String" And Not IsDate(Replace(RAN, ".", "-")) Then
  8.   X = X + 1
  9. End If
  10. Next
  11. MsgBox "数据区域有" & X & "个"
  12. End Sub
复制代码

评分

参与人数 1 +10 收起 理由
macky591 + 10 学习

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 06:31 , Processed in 0.503064 second(s), 19 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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