Office中国论坛/Access中国论坛

标题: 如何把两个文件里重复的部分删除? [打印本页]

作者: morobob    时间: 2006-11-6 23:50
标题: 如何把两个文件里重复的部分删除?
EXCEL文件A,B和C,A包含了B和C,B和C的内容可能有重复。请教如何把A里面的B和C的内容删除,只显示BC没有的内容?

第一次来这里,望高手说详细点,我不太熟悉EXCEL。谢谢了。
作者: 淼漫    时间: 2006-11-7 04:00
EXCEL中有很多sheet, 不知你说B/C表中是不是其中一个? sheet可删除的
作者: morobob    时间: 2006-11-7 22:12
每个文件里只有一个sheet。

也可以说ABC各是一个sheet

我要删的是A里面的数据,这些数据是和B或者C相同了,所以要删除。
作者: 淼漫    时间: 2006-11-8 06:17
既然A表为最全的数据, 何不用筛选功能? B/C表均能通过定义筛选条件而得出
作者: ninar    时间: 2006-11-8 07:00


这里只是写了从A中删除与B相同的内容,C同理。需删除的内容被我改成了#####,当然也可以直接删除改成.value = ""即可。不过完全变为空的话会影响找最后一行或列的命令。待高手指点。

Sub findsame()
Set mysheet1 = Workbooks("A.xls").Sheets(1)
Set mysheet2 = Workbooks("B.xls").Sheets(1)
'find lastcell and lastcolumn in A
Alastcell = mysheet1.Range("a1").End(xlDown).Row
Alastcolumn = mysheet1.Range("a1").End(xlToRight).Column
' find lastcell and lastcolumn in B
Blastcell = mysheet2.Range("a1").End(xlDown).Row
Blastcolumn = mysheet2.Range("a1").End(xlToRight).Column
For i = 1 To Alastcell
    For j = 1 To Alastcolumn
        For m = 1 To Blastcell
            For k = 1 To Blastcolumn
                If mysheet1.Cells(i, j).Value = mysheet2.Cells(m, k).Value Then
                mysheet1.Cells(i, j).Value = "#####"
                GoTo forj
                End If
                Next k
            Next m
forj:
        Next j
    Next i
End Sub
作者: gurui1980    时间: 2006-11-8 08:41
LZ可以试试这个方法,若你的数据非常大非常多,就比较适合你的了,将B中含有的所有字符从文件A中都删除掉.缺点是A B文件每个单元都将被冲头找到尾。 请高手改进。

Sub Makro1()
For Each x In Workbooks("B.xls").Sheets(1).Cells
    Workbooks("A.xls").Sheets(1).Cells.Replace What:=x, Replacement:="", LookAt:=xlWhole
Next
End Sub
作者: gurui1980    时间: 2006-11-9 03:31
又加工了一下,这样写就不会全部单元查找了,只处理已用区域,LZ可以试试。

Sub Makro1()
Set A_usedArea = Workbooks("A.xls").Sheets(1).UsedRange
Set B_usedArea = Workbooks("B.xls").Sheets(1).UsedRange
Set C_usedArea = Workbooks("C.xls").Sheets(1).UsedRange
For Each x In B_usedArea
    A_usedArea.Replace What:=x, Replacement:="", LookAt:=xlWhole, MatchCase:=True
Next
For Each x In C_usedArea
    A_usedArea.Replace What:=x, Replacement:="", LookAt:=xlWhole, MatchCase:=True
Next
End Sub

[此贴子已经被作者于2006-11-8 19:47:20编辑过]


作者: morobob    时间: 2006-11-9 23:10
不是很明白,这些语句要用在什么里面呢?怎么使用?

4楼所说的筛选功能我试过了,但我只能把A里面和B不同的部分删了,怪。

麻烦高手们说详细点,我对EXCEL只是能简单的操作。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3