コードに実行させたいこと:テーブルから取得したデータを含む「DB」というシートがあります。XMLから取得したデータを持つ「XML」ワークシートがあります。「DB」シートから列名「FName」を取得し、「XML」シートで同じ列名「FName」を検索したい。列名が一致する場合は、「DB」シートから対応する値を取得し、「XML」シートと比較します。同じワークブックに別のシート「結果」があります。「DB」シートから列名を取得し、転置(行ごとの列)を貼り付けました。以下のシナリオを実行する必要があります
。1。列名が両方のシートで一致する場合:
-両方のシートで対応する列名の値の一致を検索します。値が一致する場合、「結果」で
2.列名が両方のシートで一致しない場合:
-「結果」シートで、列名が「FName」の行の隣の列に「NOMatchingCOLUMN」と入力する必要があります。
現在、このコードでは、「DB」シートの各列を解析して、その列を検索したいと思いました。しかし、「アプリケーション定義またはオブジェクト定義のエラー」が発生します。
上記のシナリオを実現する方法を教えてください。
Dim FindString As Range
Dim Rng As Range
Dim i, j As Integer
Dim finalcol As Long
Worksheets("DB").Select
finalcol = Worksheets("DB").Cells(1, Application.Columns.Count).End(x1toleft).column
On Error Resume Next
For i = 1 To finalcol
FindString = Cells(1, i).Value
If Trim(FindString) <> "" Then
With Sheets("xml").Range("A:A")
Set Rng = .Find(What:=FindString, _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not Rng Is Nothing Then
Application.Goto Rng, True
Else
MsgBox "Nothing found"
End If
End With
End If
Next i
On Error GoTo 0
サブ終了