编辑:我想通了,感谢有用的帖子。我的最终代码如下。
我正在使用Excel,我已经获得了这个查找字符串的VBA脚本,将其复制,然后将两个单元格粘贴下来。我想要做的是让整个工作表的流程重复,直到它到达最后一次。
有人可以帮我把它放入循环或类似的东西吗?
Sub PasteOffset()
Dim rng1 As Range
Dim strSearch As String
strSearch = "Transaction Number*"
Set rng1 = Range("A:A").Find(strSearch, , xlValues, xlWhole)
If Not rng1 Is Nothing Then
rng1.Select
rng1.Copy
rng1.Offset(2, 0).PasteSpecial
Else
MsgBox "all done"
End If
End Sub
答案 0 :(得分:1)
这样的东西? :
Sub PasteOffset()
Dim rng1 As Range
Dim strSearch As String
strSearch = "Transaction Number*"
For CellNumber = 300 to 1 Step -1 'Write the end number here (instead of 300)
Set rng1 = Range("A" & CellNumber )
If rng1.Value = strSearch Then
rng1.Select
rng1.Copy
rng1.Offset(2, 0).PasteSpecial
End If
Next CellNumber
End Sub
答案 1 :(得分:1)
这有效:
Sub PasteOffset()
Dim rng1 As Range
Dim strSearch As String
strSearch = "Transaction Number*"
For CellNumber = 355 To 1 Step -1
Set rng1 = Range("A" & CellNumber)
If rng1.Value Like strSearch Then
rng1.Select
rng1.Copy
rng1.Offset(2, 0).PasteSpecial
End If
Next CellNumber
End Sub
答案 2 :(得分:0)
尝试一下:
Sub tgr()
Dim rngFound As Range
Dim rngAll As Range
Dim AllCell As Range
Dim strSearch As String
Dim strFirst As String
strSearch = "Transaction Number*"
Set rngFound = Columns("A").Find(strSearch, Cells(Rows.Count, "A"), xlValues, xlWhole)
If Not rngFound Is Nothing Then
Set rngAll = rngFound
strFirst = rngFound.Address
Do
Set rngAll = Union(rngAll, rngFound)
Set rngFound = Columns("A").Find(strSearch, rngFound, xlValues, xlWhole)
Loop While rngFound.Address <> strFirst
For Each AllCell In rngAll.Cells
AllCell.Copy
AllCell.Offset(2).PasteSpecial
Next AllCell
Application.CutCopyMode = False
End If
End Sub