Excel精英培训网

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

[已解决]类型不匹配,改一下,谢谢!!!

[复制链接]
发表于 2013-6-21 20:34 | 显示全部楼层 |阅读模式
  1. Sub 基本资料()


  2. Dim Ar, arr, i&
  3. Range("f2:h" & Rows.Count).ClearContents

  4. Set R = CreateObject("vbscript.regexp")
  5. Dim An(1 To 99) As Long, K&, At(), Cel As Range
  6. Const CN As Double = 25.4
  7. Set Cel = Range("e:e").Find("%")
  8. ' Range("b2:d" & Rows.Count).ClearContents
  9. If Not Cel Is Nothing Then
  10. Ar = Range("e2:e" & Cel.Row - 1).Value
  11. arr = Range(Cel.Offset(1), Cel.End(4)).Value
  12. ReDim At(1 To UBound(Ar), 1 To 3)
  13. With R
  14. .Global = True
  15. .Pattern = ".*X.*Y.*"
  16. For i = 1 To UBound(arr)
  17. If Left(arr(i, 1), 1) = "T" Then
  18. K = CByte(Mid(arr(i, 1), 2))
  19. Else
  20. If .test(arr(i, 1)) Then
  21. An(K) = An(K) + 1
  22. End If
  23. End If
  24. Next i
  25. .Pattern = "(T(\d{2}))C(\.\d+)$"
  26. For i = 1 To UBound(Ar)
  27. If .test(Ar(i, 1)) Then
  28. arr = Split(.Replace(Ar(i, 1), "$1 $3 $2"))
  29. At(i, 1) = arr(0)
  30. At(i, 2) = arr(1) * CN
  31. At(i, 3) = An(CByte(arr(2)))
  32. End If
  33. Next i
  34. End With
  35. [f2].Resize(UBound(At), 3) = At
  36. Set R = Nothing

  37. MsgBox "处理完毕,请验证。"
  38. End If
  39. End Sub
复制代码
最佳答案
2013-6-21 20:56
Ar = Range("e2:e" & Cel.Row - 1).Value
改成Ar = Range("e2:f" & Cel.Row - 1).Value

Book1.rar

14.38 KB, 下载次数: 6

发表于 2013-6-21 20:55 | 显示全部楼层
回复

使用道具 举报

发表于 2013-6-21 20:56 | 显示全部楼层    本楼为最佳答案   
Ar = Range("e2:e" & Cel.Row - 1).Value
改成Ar = Range("e2:f" & Cel.Row - 1).Value

评分

参与人数 1 +3 收起 理由
fangniuji + 3 很给力!

查看全部评分

回复

使用道具 举报

发表于 2013-6-21 20:58 | 显示全部楼层
如果不借一列,CEL.ROW-1等2时,取回的值就不是数据而一个普通的变量了。
借一列后,就是E2:F2,这样就是一个数组。
回复

使用道具 举报

发表于 2013-6-21 20:58 | 显示全部楼层
另外,当在10,07下保存带宏的工作簿时,要么是XLS,要么就是XLSM格式,否则代码会被抛弃的。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-18 12:59 , Processed in 0.300501 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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