ここで必死になる。これを終わらせるために午後を過ごしてください。ここで何が問題を引き起こしているのかよくわかりません。
私はデータのワークシートを持っています。このシートには、人々、使用するシステム、ユーザー名、マネージャーなどのリストがあります。このデータは、古い場合がある外部ファイルから取得されるため、マクロを作成しています古いデータ(マネージャーなど)を手動で上書きします
この抽出されたデータは、「Extract」というワークシートにあります。
「データ」という別のワークシートがあり、このワークシートには 2 つのテーブルがあります。システム上の名前 - 「NoS」 - およびオーバーライド マネージャ名 - 「OMN」。これらのテーブルは互いに隣接しています。アイデアは、私のマクロがNoSで名前を検索し、それが見つかった場合、マネージャー (右に 7 セル) を「OWN」の隣接セルの値に置き換えるというものです。
NB私はテーブル/名前付き範囲を使用しているので、名前が追加されると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
「抽出」タブ
フルネーム | 名 | 姓 | 部門 | ユーザー名 | システム | システム | 日付 | マネージャー アクセス
これがあまり意味をなさない場合は申し訳ありません。もっと詳しく説明する必要がある場合はお知らせください。