は、私が列1
、2
、柱3
のみの& 4
と式の値を貼り付けしようとしています。エクセル複数のペーストスペシャル
私はどちらか得ることができますまたはすべての4列を操作することが、私はこれが私の唯一の柱4
上の値を示します.PasteSpecial xlPasteFormulasAndNumberFormats
Sub FindData() 'Find Both
Application.ScreenUpdating = False
Dim datasheet As Worksheet 'data copied from
Dim reportsheet As Worksheet 'data pasted to
Dim partone As String 'search criteria 1
Dim parttwo As String 'search criteria 2
Dim finalrow As Integer 'find last used row
Dim i As Integer 'row counter
'set variables
Set datasheet = Sheet2
Set reportsheet = Sheet4
partone = reportsheet.Range("E6").Value
parttwo = reportsheet.Range("F6").Value
'clear old data from reort sheet
reportsheet.Range("A10:D110").ClearContents
'goto datasheet and start searching and copying
datasheet.Select
finalrow = Cells(Rows.Count, 1).End(xlUp).Row
'loop through the rows to find matching records
For i = 10 To finalrow
If Cells(i, 5) = partone And Cells(i, 6) = parttwo Then
Range(Cells(i, 1), Cells(i, 4)).Copy
reportsheet.Select
Range("A101").End(xlUp).Offset(1, 0).PasteSpecial xlPasteFormulasAndNumberFormats
datasheet.Select
End If
Next i
reportsheet.Select
Range("E9:F9").Select
Application.ScreenUpdating = True
End Sub
私は3を=かどうかを確認する場合は、あなたの現在までのIf句を追加しますか? – SJR
あなたの質問には答えられませんが、 'someSheet.Select'を使用し続ける必要はありません。ワークシート変数を直接使用する方が安全で迅速です。例えば。 'finalrow = datasheet.Cells(Rows.Count、1).End(xlUp).Row'です。同じワークシートを参照したくない場合は、With文を使用してください。 – SteveES
@SteveESあなたがアドバイスをしているならば、あなたの 'finalrow'は完全修飾ではなく、' finalrow = datasheet.Cells(datasheet.Rows.Count、1).End(xlUp).Row'である必要があります。 –