このコードを使用するには問題があります。 「Employee」の次のインスタンスが見つかるまで列Aを通過し、次に列Cで指定されたワークシートにそれらの行をコピーして、リストを元に戻します。私はかなりVBAに新しいです、誰も私を助けることができますか?VBAを使用して特定のワークシートに特定のワークグループにコピーする
従業員情報は「Employee」という単語の2つのインスタンスの間にあるため、これをトリガーとして設定し、行の開始点と終了点を設定しようとしました。
ご迷惑をおかけして申し訳ございませんが、私はむしろ新しいです。コードで私の目標は、1つのシート( "Regs")からC列の範囲内のセルで指定された別のシートに範囲をコピーすることです。この範囲は、高さが5〜16行のいずれかで、それぞれが2で挟まれています列Aの「従業員」のインスタンス:「従業員:###### - Lname、Fname」、「従業員合計」のインスタンス私の具体的な問題は、各範囲をコピーした後に可変量をステップするようにループを設定することです(変数の量は、以前にコピーされた範囲の行数です)。
私は解決策を見つけましたが、私はそれを下に置いていますが、私はそれがよりうまくいくと確信しています。
Sub HourAllocationsRegs()
Dim StartRow As Integer
Dim EndRow As Integer
Dim lngLastRow As Long
Dim strMyValue As String
strMyValue = "Employee" 'Value to search for, change as required.
Sheets("Regs").Select
lngLastRow = Cells(Rows.Count, "A").End(xlUp).Row 'Search Column A, change as required.
For i = 2 To lRow Step K - i 'Starts on Row 7 and will jump to the next group according to row of next value
StartRow = i
For K = i + 1 To 100 Step 1
If InStr(1, (Range("A" & i + 1).Value), strMyValue) > 0 Then
EndRow = K
Exit For
End If
Next
Rows(Str(StartRow) & ":" & Str(EndRow)).Select
Selection.Copy
Sheets(Range("C" & Str(StartRow + 2)).Text).Select
Range("A1048576").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Next
End Sub
「このコードを動作させるのに問題があります」というのはあまり役に立ちません。あなたの問題は何ですか? – SJR
あなたは、 'あなたは、それらの行を指定された列に別のCの列Cにコピーしたいでしょうか? 'ということを明確にすることができます...あなたはその列にセルをコピーすることを意図しない限り、行を列にコピーできません。 .. – ShanayL
ループの前に 'K'の値を設定することはありません。従って、「i = 2に対してlRowステップK-i」は、「i = 2に対してlRowステップ0-0」と同等であり、これはループが決して実行されないことを意味する。 –