Excel精英培训网

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

[已解决]请教各位帮我看一下代码哪里错了,谢谢

[复制链接]
发表于 2012-9-7 21:10 | 显示全部楼层 |阅读模式
我把别人的代码加工了一下,没有大的改动,怎么就是运行错误了呢,请教各位大虾 新建 Microsoft Excel 工作表 (16).rar (20.35 KB, 下载次数: 10)
发表于 2012-9-7 21:13 | 显示全部楼层
'D:\附件.xls'!caife
按钮指定的宏不对。
回复

使用道具 举报

发表于 2012-9-7 21:16 | 显示全部楼层
本帖最后由 hwc2ycy 于 2012-9-7 21:19 编辑

r 新建 Microsoft Excel 工作表 (16).rar (21.55 KB, 下载次数: 2)
回复

使用道具 举报

发表于 2012-9-7 21:20 | 显示全部楼层
过程名光有C不行,可用D没问题,看看高手的答案。
回复

使用道具 举报

 楼主| 发表于 2012-9-7 21:23 | 显示全部楼层
  1. Sub caifen()
  2. Dim Myr&, Arr, x&
  3. Dim d, d1, d2, i&, j&
  4. Set d = CreateObject("Scripting.Dictionary")
  5. Set d1 = CreateObject("Scripting.Dictionary")
  6. Set d2 = CreateObject("Scripting.Dictionary")
  7. Myr = [a65536].End(xlUp).Row
  8. Arr = Range("a2:a" & Myr)
  9. Range("c2:e" & Myr).ClearContents
  10. my = Array("MOTO", "诺基亚", "三星", "索爱")
  11. gc = Array("OPPO", "联想", "天语", "金立", "步步高", "波导", "TCL", "酷派")
  12. For x = 1 To UBound(Arr)
  13.     For i = 0 To UBound(my)
  14.         If InStr(Arr(x, 1), my(i)) > 0 Then
  15.             d(Arr(x, 1)) = ""
  16.             GoTo 100
  17.         End If
  18.     Next i
  19.     For j = 0 To UBound(gc)
  20.         If InStr(Arr(x, 1), gc(j)) > 0 Then
  21.             d1(Arr(x, 1)) = ""
  22.             GoTo 100
  23.         End If
  24.     Next j
  25.     d2(Arr(x, 1)) = ""
  26. 100:
  27. Next x
  28. Range("c2").Resize(UBound(d.Keys) + 1, 1) = Application.Transpose(d.Keys)
  29. Range("d2").Resize(UBound(d1.Keys) + 1, 1) = Application.Transpose(d1.Keys)
  30. Range("e2").Resize(UBound(d2.Keys) + 1, 1) = Application.Transpose(d2.Keys)
  31. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2012-9-7 21:26 | 显示全部楼层
百思不得其解。。。{:31:}
回复

使用道具 举报

发表于 2012-9-7 21:35 | 显示全部楼层
重新插一个按钮也成。
回复

使用道具 举报

发表于 2012-9-7 21:41 | 显示全部楼层
  1. Sub c()
  2. Dim x%, Arr, i%, j%
  3. Dim d1, d2, d3
  4. Set d1 = CreateObject("scripting.dictionary")
  5. Set d2 = CreateObject("scripting.dictionary")
  6. Set d3 = CreateObject("scripting.dictionary")
  7. Arr = [a1].CurrentRegion
  8. array1 = Array("MOTO", "诺基亚", "三星", "索爱")
  9. array2 = Array("OPPO", "联想", "天语", "金立", "步步高", "波导", "TCL", "酷派")
  10. For x = 2 To UBound(Arr)
  11.      For i = 0 To UBound(array1)
  12.         If InStr(Arr(x, 1), array1(i)) > 0 Then
  13.         d1(Arr(x, 1)) = ""
  14.         GoTo 100
  15.         End If
  16.     Next i
  17.      For j = 0 To UBound(array2)
  18.          If InStr(Arr(x, 1), array2(j)) > 0 Then
  19.          d2(Arr(x, 1)) = ""
  20.          GoTo 100
  21.       End If
  22.     Next j
  23.      d3(Arr(x, 1)) = ""
  24. 100:
  25. Next x
  26. Range("c2").Resize(d1.Count1) = Application.Transpose(d1.keys)
  27. Range("d2").Resize(d2.Count) = Application.Transpose(d2.keys)
  28. Range("e2").Resize(d3.Count) = Application.Transpose(d3.keys)
  29. End Sub
复制代码

新建 Microsoft Excel 工作表 (16).rar

22.21 KB, 下载次数: 4

回复

使用道具 举报

发表于 2012-9-7 21:52 | 显示全部楼层
  1. Sub test()
  2.     Dim x As Integer, Arr, i As Integer, j As Integer
  3.     Dim dic1 As Object, dic2 As Object, dic3 As Object
  4.     Set dic1 = CreateObject("scripting.dictionary")
  5.     Set dic2 = CreateObject("scripting.dictionary")
  6.     Set dic3 = CreateObject("scripting.dictionary")
  7.     Arr = Range("A1").CurrentRegion
  8.     array1 = Array("MOTO", "诺基亚", "三星", "索爱")
  9.     array2 = Array("OPPO", "联想", "天语", "金立", "步步高", "波导", "TCL", "酷派")
  10.     For x = 2 To UBound(Arr)
  11.         For i = 0 To UBound(array1)
  12.             If InStr(Arr(x, 1), array1(i)) > 0 Then
  13.                 dic1(Arr(x, 1)) = ""
  14.                 GoTo 100
  15.             End If
  16.         Next
  17.         For j = 0 To UBound(array2)
  18.             If InStr(Arr(x, 1), array2(j)) > 0 Then
  19.                 dic2(Arr(x, 1)) = ""
  20.                 GoTo 100
  21.             End If
  22.         Next
  23.         dic3(Arr(x, 1)) = ""
  24. 100:
  25.     Next
  26.     If dic1.Count > 1 Then Range("C2").Resize(dic1.Count, 1) = Application.Transpose(dic1.Keys)
  27.     If dic2.Count > 1 Then Range("D2").Resize(dic2.Count, 1) = Application.Transpose(dic2.Keys)
  28.     If dic3.Count > 1 Then Range("E2").Resize(dic3.Count, 1) = Application.Transpose(dic3.Keys)
  29. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2012-9-7 21:58 | 显示全部楼层
hwc2ycy 发表于 2012-9-7 21:35
重新插一个按钮也成。

我没用那个按钮哇,我是直接运行的{:18:}
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-21 02:45 , Processed in 0.402726 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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