如何判斷兩個工作表內含有相同的值,並刪除其中一個表內此值所在列的資料

M_Judy0 2009-02-24 02:56:34
如何判斷兩個工作表內含有相同的值,並刪除其中一個表內此值所在列的資料,例如:
A表內有資料如下(此處僅列二條記錄):
A欄 B欄 C欄
N2008121701 HC01-121W240B4 L7030-H91129T0029A3
N2008121701 HC01-121W240B4 L7030-H91129T0027A3
.......


B表內有:
N2008121701 HC01-121W240B4 L7030-H91129T0027A3
N2008121801 HC01-121W240B4 L7030-H91129T0026A3
........

當A表C欄的值與B表C內的值相同時,則刪除A表內此值所在列的所有資料.
如(A表C2的值)L7030-H91129T0027A3在B表內存在,則刪除此條記錄.
N2008121701 HC01-121W240B4 L7030-H91129T0027A3

每執行一次,判斷一次,重複檢查重複值.
...全文
136 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
M_Judy0 2009-02-25
  • 打赏
  • 举报
回复
此程式我自已已修改好,謝謝2.4樓的提醒.
M_Judy0 2009-02-25
  • 打赏
  • 举报
回复
對,應該是刪除此值所在行的所有資料.
dragonrabb 2009-02-25
  • 打赏
  • 举报
回复
你自己写的要删除些值所在列的所有资料。。。。。


[Quote=引用 1 楼 M_Judy0 的回复:]
我的程式是這樣寫的,可以判斷但只能刪除此地址的值,怎樣改成刪除此值所在列的所有資料.
Sub TEST ()
Dim i As Long

For i = 3 To 65536

If Sheets("sheet1").Range("d" & i).Value = Sheets("sheet2").Range("d" & i).Value Then

MsgBox "此值已存在" & Sheets("sheet2").Range("d" & i).Address


Sheets("sheet1").Range("d" & i).Delete
End
End If
Next
End Sub
[/Quote]
M_Judy0 2009-02-25
  • 打赏
  • 举报
回复
樓上使用Columns("d").Delete不正確,恰恰相反,Rows(i).Delete才是正確的.

我的程式只能判前一個值和最後一值,且只能刪除該存儲格地址(不能刪除整列資料).
正確的應該是在a表 d欄逐個判斷.逐個刪除
dragonrabb 2009-02-24
  • 打赏
  • 举报
回复
Columns("d").Delete
M_Judy0 2009-02-24
  • 打赏
  • 举报
回复
我的程式是這樣寫的,可以判斷但只能刪除此地址的值,怎樣改成刪除此值所在列的所有資料.
Sub TEST ()
Dim i As Long

For i = 3 To 65536

If Sheets("sheet1").Range("d" & i).Value = Sheets("sheet2").Range("d" & i).Value Then

MsgBox "此值已存在" & Sheets("sheet2").Range("d" & i).Address


Sheets("sheet1").Range("d" & i).Delete
End
End If
Next
End Sub

5,139

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧