質問
編集:親切な投稿のおかげで、私はそれを考え出しました。私の最後のコードは以下の通りです。
Excelを使用しています。文字列を探すこのVBAスクリプトを取得し、それをコピーしてから2つのセルを貼り付けます。私がやりたいことは、シート全体が最後の発生に達するまでプロセスを繰り返すことです。
誰かがこれをループまたは似たものに入れてくださいか?
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
. 解決
これは機能します:
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
. 他のヒント
これのようなもの?:
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
. これを試してみてください:
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
. 所属していません StackOverflow