ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 154|回复: 7

[求助] 请大神指点

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-5-30 16:40 | 显示全部楼层 |阅读模式
本帖最后由 jonsonchang 于 2024-5-30 16:43 编辑

附件已做好例子和宏
通过界面点击删除重复项,录制到下方宏命令,Array有多列,因为每次操作的列数不确定,需要改为变量,但是Array放入变量后报错,请大神看下是否有办法解决?谢谢




Sub 宏2()
    T = ActiveSheet.UsedRange.Columns.Count
    For i = 1 To T
        columnArray = columnArray & "," & i
    Next i
    AA = Mid(columnArray, 2)
    '根据录制宏调整的Array变量,Array(AA)报错
    ActiveSheet.Range("$A$1:$BM$222").RemoveDuplicates Columns:=Array(AA), Header:=xlYes
    '录制宏
    '    ActiveSheet.Range("$A$1:$BM$222").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65), Header:=xlYes
    Stop
End Sub




1.jpg

工作簿1.zip

14.24 KB, 下载次数: 8

TA的精华主题

TA的得分主题

发表于 2024-5-30 17:19 | 显示全部楼层
Sub 宏1()
    Columns("A:BM").Range("$A$1:$BM$9").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7 _
        , 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34 _
        , 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, _
        61, 62, 63, 64, 65), Header:=xlYes
End Sub
'这个也是录制的试试

TA的精华主题

TA的得分主题

发表于 2024-5-30 17:33 | 显示全部楼层
Sub test() '去除a到bm都重复的数据
Sheet1.Columns("a:bm").RemoveDuplicates 1
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-5-30 18:21 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Qs18 发表于 2024-5-30 17:33
Sub test() '去除a到bm都重复的数据
Sheet1.Columns("a:bm").RemoveDuplicates 1
End Sub

牛X呀,那如果要指定列,需要用到变量要如何写呢?

TA的精华主题

TA的得分主题

发表于 2024-5-30 19:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
ActiveSheet.UsedRange.RemoveDuplicates 1

TA的精华主题

TA的得分主题

发表于 2024-5-30 21:16 | 显示全部楼层
jonsonchang 发表于 2024-5-30 18:21
牛X呀,那如果要指定列,需要用到变量要如何写呢?

Columns("a:bm").RemoveDuplicates 1做成变量就可以了

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-5-31 09:14 | 显示全部楼层
Qs18 发表于 2024-5-30 21:16
Columns("a:bm").RemoveDuplicates 1做成变量就可以了

请指点,这样写入变量后提示溢出
Sub 宏2()
    T = ActiveSheet.UsedRange.Columns.Count
    For i = 1 To T
        columnArray = columnArray & "," & i
    Next i
    AA = Mid(columnArray, 2)
    '变量,报错
ActiveSheet.UsedRange.RemoveDuplicates AA, Header:=xlYes
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-5-31 09:15 | 显示全部楼层
gwjkkkkk 发表于 2024-5-30 19:22
ActiveSheet.UsedRange.RemoveDuplicates 1

谢谢,请问如何改为变量呢?下方语句AA是数组变量,放入后提示“溢出”

Sub 宏2()
    T = ActiveSheet.UsedRange.Columns.Count
    For i = 1 To T
        columnArray = columnArray & "," & i
    Next i
    AA = Mid(columnArray, 2)
    '变量,报错
ActiveSheet.UsedRange.RemoveDuplicates AA, Header:=xlYes
End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 04:22 , Processed in 0.044256 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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