2017-07-18 36 views
0

文字列セルの下にある範囲を探して、その範囲を別のシートにコピーしようとしています。 範囲を見つけてコピーするのに成功しましたが、そのエラーが発生したために別のシートに貼り付けられません。私は非常に多くの異なる方法を試しましたが、依然として問題です。 Plsは私を助ける。まったくselectionを使用し、代わりに、適切にあなたの範囲を修飾しない、代わりにselection.pasteVBA:実行時エラー91:オブジェクト変数またはWithブロック変数が設定されていません

またはいっその

Sub Copy() 

    Dim SearchRange As Range 
    Dim FindRow1 As Range 
    Dim FindRow2 As Range 
    Dim FindRow3 As Range 
    Dim a1 As Long 
    Dim a2 As Long 
    Dim b1 As Long 
    Dim b2 As Long 
    Dim c1 As Long 

    Set SearchRange = Range("A1", Range("A65536").End(xlUp)) 
    Set FindRow1 = SearchRange.Find("EUR", LookIn:=xlValues, lookat:=xlWhole) 
    Set FindRow2 = SearchRange.Find("USD", LookIn:=xlValues, lookat:=xlWhole) 
    Set FindRow3 = SearchRange.Find("VND", LookIn:=xlValues, lookat:=xlWhole) 

    a1 = FindRow1.Row + 1 
    a2 = FindRow2.Row - 1 
    b1 = FindRow2.Row + 1 
    b2 = FindRow3.Row - 1 
    c1 = FindRow3.Row + 1 

    Range(Cells(a1, "A"), Cells(a2, "AU")).Select 
    Selection.Copy 
    Sheets("Sheet1").Select 
    Selection.Paste 

End Sub 
+2

あなたはFind 3回を使用しようとした後、以下のコードscectionをお試しください! – doctorlove

+0

[Find command giving error: "実行時エラー '91':オブジェクト変数またはWithブロック変数が設定されていません"](https://stackoverflow.com/q/26653203/11683)の可能な複製 – GSerg

+0

エラーが行頭に表示されるa1 = Findrow1.Row +1 –

答えて

1

Find関数を使用する場合は、結果に別の変数を割り当てる前にFindが成功したことを確認する必要があります。あなたはwhichlineはエラーになります知っています

' make sure Find was able to find all 3 strings 
If Not FindRow1 Is Nothing And Not FindRow2 Is Nothing And FindRow3 Is Nothing Then 
    a1 = FindRow1.Row + 1 
    a2 = FindRow2.Row - 1 
    b1 = FindRow2.Row + 1 
    b2 = FindRow3.Row - 1 
    c1 = FindRow3.Row + 1 

    ' Copy >> Paste in 1 line (without using Select) 
    Range(Cells(a1, "A"), Cells(a2, "AU")).Copy Destination:=Sheets("Sheet1").Range("A1") 
Else ' FInd failed in at least one of the strings 
    MsgBox "Find couldn't find at least one of the strings", vbCritical 
End If 
+0

それは動作します!あなたの答えをありがとう。私はIf Not部分を見逃したと思う。 –

+0

@DDあなたは歓迎です、今私の答えの左側にある灰色のcheck0mark(緑色に変わります)をクリックすることで、これを「回答者」とマークするところに来てくれます。ありがとう –

+0

こんにちは、私は修正しようとしています自動的にファイルを開くビットが、私はなぜこれをチェックすることができますか、私は理解していない問題をもう一度持っている? –

-1

使用selection.pastespecial:ここにコードされています。

関連する問題