【发布时间】:2012-11-23 08:50:07
【问题描述】:
我希望我的代码执行的操作:有一个名为“DB”的工作表,其中包含从表中获取的数据。我有“XML”工作表,其中包含从 XML 获取的数据。我想从“DB”表中获取列名“FName”并在“XML”表中搜索相同的列名“FName”。如果列名匹配,则从“DB”表中获取相应的值并与“XML”表进行比较。我在同一个工作簿中有另一张“结果”表。我从“DB”表中获取了列名并粘贴了转置(按行排列)。我必须做以下场景:
1. 如果两个工作表中的列名匹配:
- 在两个工作表中搜索对应列名的值匹配。如果值匹配,在“结果”表中,我必须在列名为“FName”的行旁边的列中写下“匹配”或“不匹配”。
2.如果两个工作表中的列名都不匹配:
- 在“结果”表中,我必须在列名为“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 数据和结果的样本吗?