-1

シート 1 と 2 の 2 つがあります。シート 1 には、ファイルを参照して 2 番目のシートに貼り付けるボタンがあります。シート 2 に既に存在します。ご協力をお願いします

Sub hh()
'
' hh Macro
'

'
    Range("A1:A11").Select
    Selection.Copy
    Sheets("Sheet1").Select
    Range("B19").Select
    ActiveSheet.Paste
    ActiveWindow.SmallScroll Down:=9
    Sheets("Sheet2").Select
    Range("A2:A5").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Sheet1").Select
    Range("B30").Select
    ActiveSheet.Paste
End Sub

このコードを手動で再コーディングしました

4

1 に答える 1

0

注:この回答はSub hh、新しい質問を作成するために編集された元の質問に対するものです。

まず、元のコードは次のように書き直すことができます。

Sub hh()

Sheets("Sheet2").Range("A1:A11").Copy
Sheets("Sheet1").Range("B19").Paste
Sheets("Sheet2").Range("A2:A5").Copy
Sheets("Sheet1").Range("B30").Paste

End Sub

これで、「最後の行」に基づいて貼り付け場所を変更できます。これは、あなたが求めていると私が信じていることです。最後の行は次のようになります。

(コメント欄)

Sub hh()

'Varible to store the last row in
Dim iLastRowSheet1 As Long

'copy initial data to memory
Sheets("Sheet2").Range("A1:A11").Copy

'find current last row
With Sheets("Sheet1")
    iLastRowSheet1 = .Range(B & .Rows.Count).End(xlUp).Row
End With

'paste using last row found + 1
Sheets("Sheet1").Range("B" & (iLastRowSheet1 + 1)).Paste

'repeat
Sheets("Sheet2").Range("A2:A5").Copy
With Sheets("Sheet1")
    iLastRowSheet1 = .Range(B & .Rows.Count).End(xlUp).Row
End With
Sheets("Sheet1").Range("B" & (iLastRowSheet1 + 1)).Paste

End Sub
于 2012-10-09T20:07:55.620 に答える