Excel精英培训网

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

[已解决]求助大神解决

[复制链接]
发表于 2016-4-8 15:51 | 显示全部楼层 |阅读模式
本帖最后由 ttbb523 于 2016-4-8 15:53 编辑

求助大神解决1,删除全是单数或者双数的行,
                     2,选出尾数只有一组重复且只重复2次的行
如果可以麻烦给注释下程序的详细功能
最佳答案
2016-4-8 16:46
  1. Sub tt()     '删除全是单数或者双数的行
  2.     arr = [a1:f17]
  3.     c = UBound(arr, 2)
  4.     For i = 1 To UBound(arr)
  5.         x = 0
  6.         For j = 1 To c
  7.             x = x + arr(i, j) Mod 2
  8.         Next
  9.         If x <> 0 And x <> c Then
  10.             n = n + 1
  11.             For j = 1 To c
  12.                 arr(n, j) = arr(i, j)
  13.             Next
  14.         End If
  15.     Next
  16.     [h1].Resize(100, c) = ""
  17.     [h1].Resize(n, c) = arr
  18. End Sub
  19. Sub ttt()     '选出尾数只有一组重复2次的行
  20.     arr = [a1:f17]
  21.     Set d = CreateObject("scripting.dictionary")
  22.     c = UBound(arr, 2)
  23.     For i = 1 To UBound(arr)
  24.         d.RemoveAll
  25.         For j = 1 To c
  26.             x = arr(i, j) Mod 10
  27.             d(x) = ""
  28.         Next
  29.         If d.Count = c - 1 Then
  30.             n = n + 1
  31.             For j = 1 To c
  32.                 arr(n, j) = arr(i, j)
  33.             Next
  34.         End If
  35.     Next
  36.     [q1].Resize(100, c) = ""
  37.     [q1].Resize(n, c) = arr
  38. End Sub
复制代码

工作簿1.rar

10.78 KB, 下载次数: 13

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-4-8 16:46 | 显示全部楼层    本楼为最佳答案   
  1. Sub tt()     '删除全是单数或者双数的行
  2.     arr = [a1:f17]
  3.     c = UBound(arr, 2)
  4.     For i = 1 To UBound(arr)
  5.         x = 0
  6.         For j = 1 To c
  7.             x = x + arr(i, j) Mod 2
  8.         Next
  9.         If x <> 0 And x <> c Then
  10.             n = n + 1
  11.             For j = 1 To c
  12.                 arr(n, j) = arr(i, j)
  13.             Next
  14.         End If
  15.     Next
  16.     [h1].Resize(100, c) = ""
  17.     [h1].Resize(n, c) = arr
  18. End Sub
  19. Sub ttt()     '选出尾数只有一组重复2次的行
  20.     arr = [a1:f17]
  21.     Set d = CreateObject("scripting.dictionary")
  22.     c = UBound(arr, 2)
  23.     For i = 1 To UBound(arr)
  24.         d.RemoveAll
  25.         For j = 1 To c
  26.             x = arr(i, j) Mod 10
  27.             d(x) = ""
  28.         Next
  29.         If d.Count = c - 1 Then
  30.             n = n + 1
  31.             For j = 1 To c
  32.                 arr(n, j) = arr(i, j)
  33.             Next
  34.         End If
  35.     Next
  36.     [q1].Resize(100, c) = ""
  37.     [q1].Resize(n, c) = arr
  38. End Sub
复制代码

工作簿1.rar

18.83 KB, 下载次数: 5

评分

参与人数 1 +1 收起 理由
ttbb523 + 1 很给力

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2016-4-8 18:03 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-24 07:32 , Processed in 0.306360 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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