我想要我的代碼執行的操作:存在一張名爲「DB」的表,其中有來自表的數據。我有從XML獲取數據的「XML」工作表。我想從「DB」工作表中取一個列名「FName」,並在「XML」工作表中搜索同一列名「FName」。如果列名匹配,則從「DB」表中取對應值並與「XML」表進行比較。我在同一個工作簿中有另一張「結果」。我從「數據庫」表中獲取了列名並粘貼了轉置(列中的列)。我必須做下面的情景:
1.如果兩個表中的列名匹配:
- 在兩張表中搜索相應列名的值匹配。如果值匹配,在「結果」表中,我必須在列名爲「FName」的行旁邊的列中寫入「匹配」或「不匹配」。比較兩張表中的數據並將其寫入同一工作簿中的另一張表中
2.if列名在兩個表中都不匹配:
- 在「結果」表中,我必須在列名稱爲「FName」的行旁邊的列中寫入「NO Matching COLUMN」。
當前,在此代碼中,我想解析「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
末次
似乎可以通過使用Excel公式並完全避免使用vba更容易地實現和維護。我不完全確定你在嘗試什麼,你可以把DB數據的樣本,XML數據和結果? –