0
我寫了一個代碼來搜索每個數組變量,如果出現在Sheet.Now的每一行中,當匹配被找到時,我需要知道列號是什麼,在那裏找到了搜索字符串。任何想法如何獲得使用VB腳本?Excel工作表行匹配字符串的列號
ParentColmnCount=ParentColmnCount-1
IntRow6=2
DataCount=0
Do While objSheet6.Cells(IntRow6,1).Value <> ""
For DataCount=0 to UBound(VMHArray)
If Not objSheet6.Range(objSheet6.Cells(IntRow6,1),objSheet6.Cells(IntRow6,ParentColmnCount)).Find(VMHArray(DataCount)) Is Nothing Then
MsgBox(objSheet6.Range(objSheet6.Cells(IntRow6,1),objSheet6.Cells(IntRow6,ParentColmnCount)).Find(VMHArray(DataCount)).Columns)
End If
Next
IntRow6=IntRow6+1
Loop
更新:
IntRow6=2
DataCount=0
Do While objSheet6.Cells(IntRow6,1).Value <> ""
For DataCount=0 to UBound(VMHArray)
Set rSearch = objSheet6.Cells(IntRow6,1).EntireRow
Set rFound = rSearch.Find(VMHArray(DataCount))
If Not rFound Is Nothing Then
adrFirst = rFound.Address
Do
MsgBox(IntRow6)
MsgBox(rFound.Column + 1)
MsgBox(adrFirst)
rCol=rFound.Column
objSheet6.Cells(IntRow6,rCol + 2)= objSheet6.Cells(IntRow6,rCol + 5)
Set rFound = rSearch.FindNext(rFound)
Loop Until rFound.Address <> adrFirst And Not rFound Is Nothing
End If
Next
IntRow6=IntRow6+1
Loop
但似乎控制陷入無限循環,不斷給予21作爲其第一個匹配列number.Producing如下輸出:
2 33 $AF$2 2 33 $AF$2 2 33 $AF$2 .......
任何想法爲什麼?
感謝
優秀的幫助從你我到現在...謝謝Ekkehard –
我可以幫我解決我的新問題,任何更快的代碼嗎? http://stackoverflow.com/questions/13798858/row-data-partition-empty-column-values-in-a-row-in-one-side-and-non-empties-ar#comment18983534_13798858 –
根據我的研究我覺得FindNext()方法搜索相同的值,如果它存在於同一行中,那麼它將被找到一次。因此,如果它第二次出現在同一行中,循環將繼續,否則rFound.Address和adrFirst將是相同的,並且循環條件「rFound.Address <> adrFirst」應該打破循環以進一步迭代。但在我的情況下,它並沒有發生,它落入了永久循環,這正如我在更新後的代碼中所提到的那樣被Output所證明。那麼原因是什麼? –