【发布时间】:2013-08-25 05:20:08
【问题描述】:
在这里变得绝望。花一个下午的时间来完成这个,我无法弄清楚是什么导致了这里的问题。
我有一个数据工作表,在这个工作表上有一个人员列表、他们使用的系统、他们的用户名、他们的经理等。这些数据取自一个有时已经过时的外部文件,所以我编写一个将手动覆盖过时数据的宏(例如他们的经理)
此提取的数据位于名为“Extract”的工作表中。
我有另一个名为“数据”的工作表,在这个工作表中我有两个表;系统上的名称 - “NoS” - 并覆盖管理器名称 - “OMN”。这些表彼此相邻。这个想法是我的宏将在 NoS 上搜索一个名称,如果找到它,它将用 NoS 中相邻单元格中的值替换他们的管理器(右侧 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
“提取”标签
全名 |名字 |姓氏 |部门 |用户名 |系统 |日期 |管理员权限
对不起,如果这没有多大意义。如果您需要我更详细地解释某些事情,请告诉我。
【问题讨论】:
标签: excel vba search replace offset