2017-06-01 6 views
1

「データ取り込みシート」にデータがあるプロジェクト(傾斜傾斜計用)のVBAコードを作成しています。次に、ユーザーに、計算をその指定された値で完了させたい値(深さ)を挿入するように要求します。ユーザーが深度の値を挿入すると、その値を含む「データ読み込みシート」の列A内のすべてのセルを検索し、対応する行を次のワークシート「計算」にコピーします。たとえば、ユーザーが3.5の深さを入力した場合、3.5を含む列A内のすべてのセルを検索し、その行内のデータを「計算」ワークシートにコピーします。 ユーザーが3.5を入力すると、3.5、13.5、23.5、35.5などの値のデータがすべて「計算」ワークシートに表示されます。または、ユーザーが2を入力すると、値2、2.5、12、12.5、20などのデータが表示されます。私は、ユーザーが入力した正確な数値に対応するデータのみを必要としています!ここに私が持っているコードです:列内の特定の値を検索し、データの行全体を新しいシートにコピーします。

Sub FindMe() 
    Dim A As String 
    Dim i As Integer 
    Dim j As Integer 
    Dim strsearch As String 
    Dim lastline As Integer 
    Dim lastrow As Integer 

    A = Worksheets("Data Importation Sheet").Cells(15, "W").Value 
    Worksheets("Hidden").Cells(1, "C") = A 
    Worksheets("Calculations").Activate 
    lastrow = Worksheets("Calculations").Range("A" & Rows.count).End(xlUp).Offset(1).row 
    j = lastrow 
    Worksheets("Data Importation Sheet").Activate 
    lastline = Range("A65536").End(xlUp).row 
    strsearch = Cells.Find(A, LookIn:=xlValues, Lookat:=xlWhole) 
    For i = 1 To lastline 
    For Each c In Range("A" & i) 
     If InStr(c, strsearch) Then 
     tocopy = 1 
     End If 
    Next c 
    If tocopy = 1 Then 
     Rows(i).Copy Destination:=Sheets("Calculations").Rows(j) 
     j = j + 1 
    End If 
    tocopy = 0 
    Next i 
End Sub 

すべてのヒント/ご協力いただければ幸いです!

+0

データインポートシートでデータをどのようにレイアウトしていますか?各列はさまざまな深度での測定値のセットを表し、各行は特定の深さを表しますか? – HedgePig

答えて

0

あなたはこれを試すことができます。

If InStr(" " & c.Text & " ", " " & strsearch & " ") Then 

これは単語全体にマッチします。 strsearchをループの外にstrsearch = " " & A & " "として先験的に設定することができます(高速化のため)。

strsearch = Cells.Find(A, LookIn:=xlValues, Lookat:=xlWhole) 

それは直接割り当てstrsearch = Aと同等になります。

は最後に、私はこの声明のポイントを参照してくださいいけません。

関連する問題