在这里绝望。有一个下午来完成这个,我无法弄清楚是什么导致了这里的问题。
我有一个数据工作表,在这张表上有一个人员列表、他们使用的系统、他们的用户名、他们的经理等。这些数据取自一个有时已经过时的外部文件,所以我正在编写一个宏这将手动覆盖过时的数据(例如他们的经理)
此提取的数据位于名为“Extract”的工作表上。
我有另一个名为“数据”的工作表,在这个工作表中我有两个表;系统名称 - “NoS” - 和覆盖管理器名称 - “OMN”。这些表彼此相邻。这个想法是我的宏将在NoS上搜索一个名称,如果找到它,它将用“OWN”中相邻单元格中的值替换他们的管理器(右边是 7 个单元格)
注意我正在使用表/命名范围,以便在添加名称时范围在 VBA 上动态更新
目前,当我运行宏时,它正在更改人员经理的名称,但是它也在更改其他行上其他单元格的值(即使“提取”中的人员名称不在“NoS”上。我的代码,我的一些数据在下面,有谁知道是什么导致了问题以及我该如何解决?
Dim c, exceptionNames, extractNames, FoundOne As Range
Set exceptionNames = Range("NoS")
Set extractNames = Worksheets("Extract").Range("A1:I200")
For Each c In exceptionNames
With extractNames
Set FoundOne = .Find(What:=c, LookAt:=xlPart)
If Not FoundOne Is Nothing Then
extractNames.Replace What:=FoundOne.Offset(0, 7), Replacement:=c.Offset(0, 1).Value, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End If
End With
Next c
End Sub
“数据”选项卡
系统名称 | 覆盖经理名称
唐唐纳森 | 新经理
亚伦亚伦森 | 新经理 2
大卫戴维森 | 新经理 3
“提取”选项卡
全名 | 名字 | 姓氏 | 部门 | 用户名 | 系统 | 日期 | 经理访问
对不起,如果这没有多大意义。如果您需要我更详细地解释某些事情,请告诉我。