下面是我最近使用过的类似代码的一个小片段 不是你的问题最优化的代码,但它应该可以帮助你“看”解决方案。
Dim rngStr As String 'range declaration
Dim currentRowIndex As Integer 'used to store the rowindex of certain searchvalues
Dim searchStr As String 'word to search
Dim ws As Worksheet
'Set searchcolumn = A
rngStr = "A:A"
searchstring = "Cellvalue of cell in loop"
currentRowIndex = SearchInRange(ws, rngStr, searchStr)
If currentRowIndex <> 0 Then
'searchstr was found
Worksheets("TrendsSheet").Cells(rowIndex, ColIndex).value = Worksheets("ArrearsSheet").Cells(currentRowIndex, ColIndexOfValueYouWant).value
End If
Private Function SearchInRange(ws As Worksheet, rng As String, searchstring As String) As Integer
'return the rowindex of the first found value in a specific range
With ws.Range(rng)
Set c = .Find(searchstring, LookIn:=xlValues)
If Not c Is Nothing Then
SearchInRange = c 'searchstring found
Else
SearchInRange = 0 'searchString not found
End If
End With
End Function
绝对精湛的GBSingh ...谢谢你!我稍微调整了一下,以便不用输入一个完整的列,而是将每个匹配的单元格向右滑动,并输入新的拖欠数字。这是需要的,因为我将尝试先写下自己的下一个阶段。干杯! –
不用担心。我很高兴我能提供帮助。如果这有帮助,你可以将答案标记为已解决,以便它可以帮助其他人,然后他们知道它的作用:) – GBSingh