乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > EXCEL中怎样用VBA去掉一列数据中的重复数据?-excel的vba怎么用,excel工作簿拆分多个工作表

EXCEL中怎样用VBA去掉一列数据中的重复数据?-excel的vba怎么用,excel工作簿拆分多个工作表

作者:乔山办公网日期:

返回目录:excel表格制作


以下为代码及注释

Sub main()
Set dic = CreateObject("scripting.dictionary") '定义词典
arr = Range("A1:C500") '假设最大行数为500,将A1至C500区域放入数组
For i = 1 To UBound(arr) '从1到数组最大行数循环
If arr(i, 1) <> "" And arr(i, 1) <> "装置" Then '提出空格和标题行
dic(arr(i, 1)) = dic(arr(i, 1)) + arr(i, 3) '用字典去除重复,并且进行数量累加
End If
Next i
[e2].Resize(dic.Count, 1) = Application.Transpose(dic.keys) '将字典的keys(即A列不重复的值)转置并放在E列
[f2].Resize(dic.Count, 1) = Application.Transpose(dic.items) '将字典的kItems(即累加结果)转置并放在E列
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Address(0, 0) <> "B1" Then Exit Sub
    Dim dic As Object
    arr = Range([a1], [a65536].End(xlUp))
    Set dic = CreateObject("scripting.dictionary")
    For i = 1 To UBound(arr, 1)
        dic(arr(i, 1)) = ""
    Next
    [a65536].End(xlUp).Offset(-dic.Count + 1, 1).Resize(dic.Count, 1) = Application.Transpose(dic.keys)
End Sub

右键工作表签》粘代码


直接在记事本里写:

dir /b *.* >1.txt

然后另存为1.bat,注意扩展名必须是 bat 或 cmd 。

双击运行,1.txt 里就是当前文件夹下所有文件名。然后在excel里处理一下,想怎么弄就怎么弄。

vba写的话,立即窗口里一句也能搞定:

具体的路径你自己改就行。



用字
Sub test()
Dim i%, j%
Sheets("表A").select
Set d = CreateObject("Scripting.Dictionary")
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
d(Cells(i, j).Value) =""
Next
y = d.keys
With Sheets("表B")
For i = 0 To UBound(y)
.Cells(i + 1, "A") = y(i)
Next
End With
End Sub

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网