删除A表中的名称会删除B表中的相同名称

时间:2016-10-18 14:30:39

标签: excel vba excel-vba

我在A表中有一个名单,在B表中我有我需要经营公司的职位。 A表中的每个名字都在B中,但不是以相同的顺序,我想要一些帮助,这样如果有人离开公司,我将在名单中删除他的名字A表,我希望在B表中删除相同的名字。我只希望删除姓名而不是他被分配到的职位。

A sheet          B Sheet
Name Hire date   Name  Position
John 10/17/2016  Sam  Sales Manager
Paul 10/18/2016  Paul Inventory Manager
Sam  10/16/2016  John Clerk

名称和雇用日期在工作表A中,名称和职位在工作表B中。因此,如果我删除A工作表中的John行,我希望能够删除B表中的John,但保留其中的位置。

1 个答案:

答案 0 :(得分:0)

这应该让你知道如何去做 - 但是,正如YannickIngenierie建议的那样,如果名称重复,为每个人提供一个唯一的ID可能会更好:

Sub removeEmployee()
Dim r as Range, s As String, c As Range

s = InputBox("Enter name to remove")
If Len(Trim(s)) = 0 Then Exit Sub

With ThisWorkbook.Worksheets("A") 'search name
  Set r = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp))
  Set c = r.Find(s, , xlValues, xlWhole, , , False)
  If Not c Is Nothing Then c.EntireRow.Delete 'remove entry
End With

With ThisWorkbook.Worksheets("B")
  Set r = .Range("a2", .Cells(.Rows.Count, 1).End(xlUp))
  Set c = r.Find(s, , xlValues, xlWhole, , , False)
  If Not c Is Nothing Then c.ClearContents 'remove name,retain position
End With
End Sub