2つのワークブックがあり、どちらのレイアウトも同じです。 VBAコードが入っているワークブックはオリジナルで、2番目のワークブックはいくつかのオーバーレイ情報を持っています。私がしようとしているのは、2番目のワークブックのすべての行が元のものを見つけて、この行情報をコピーして見つからなければ、その行を新しい行として追加することです。私は列Gをこの列として比較しています。これはデータが一意のIDであることを決して変えません。あるワークシートの行を検索して別のワークシートに置き換える
私はライン上.Findに(メソッドまたはデータメンバが見つかりません)コンパイルエラーを取得しています: -
Set rngFound = .Find(What:=cell.Value, LookIn:=wbol.Worksheets("DLT Formatted").Range("G:G"), _
SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
これは私がこれまで持っているVBAコードである: -
Set wbol = Workbooks.Open("C:Documents\Overlay.xls")
Set sht2 = Workbooks("Overlay").Worksheets("Overlay Template")
With sht2
For Each Row In Range("G:G")
Set rngFound = .Find(What:=cell.Value, LookIn:=wbol.Worksheets("Overlay Template").Range("G:G"), _
SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If Not rngFound Is Nothing Then
rngFound.Select
Selection.Copy
Workbooks("Original Template").Worksheets("original").Range(rngFound).PasteSpecial
End If
Next
End With
私は自分のコードを修正しましたが、現在は同じ行にObject required errorが表示されています。私はなぜこれが起こっている私は理解してそうかわからないVBAに新しいです: -
With sht2
For Each Row In Range("G:G")
Set rngFound = wbol.Worksheets("Overlay Template").Range("G:G").Find(What:=cell.Value, LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If Not rngFound Is Nothing Then
rngFound.Copy
Workbooks("Original Template").Worksheets("original").Range(rngFound).PasteSpecial
End If
Next
End With
のようになります。私は、VBAに新たなんだので、ウェブサイトなどによりを通じて自分の道を混乱しようとしている私は、私はあなたが何を意味するか理解すればわかりません。 .find行をこれに変更しました。rngFound = RangeToSearch.Find(What:= cell.Value、LookIn:= xlValues、_ SearchOrder:= xlByRows、SearchDirection:= xlNext、MatchCase:= True)オブジェクトにエラーが発生しました。 – user3088476
申し訳ありませんが、RangeToSearchは文字通りあなたが探している範囲を意味します。あなたのケースでは、最初に "LookIn"に配置されたものです:wbol.Worksheets( "Overlay Template")。Range( "G:G")。わかりやすく答えを編集します。 – Verity
まだオブジェクトエラーが発生しています。変更されたコードで質問を更新します。 – user3088476