2016-11-29 14 views
0

私はVBAの読み込みを変更してスプレッドシートとスーツシートに合うようにしました すべてのフィルタリング、コピー貼り付け、グラフの作成を管理しましたが、トラブル(私はVBAコーディングが初めてです)。単語を検索して別のシートに行をコピーする入力ボックス

私はすべてのスクラップの理由のリストを持っています(最も大きいものから最も小さいものまで)。 sheet1の上位5つのスクラップ理由のすべてのインスタンスに対してsheet2(詳細のロード)を検索し、次にシート2の行/ s全体をsheet3にコピーする必要があります。

Sheet1

Sheet2

+0

だから、あなたが持っている*具体的な問題は何ですか?あなたは何を試しましたか、どこで困惑していますか?あなたは 'InputBox'と' Range.Find'を探しましたか? –

答えて

0

私が知られている行の値を検索する必要がある場合、私はこのようなものを使用します。

target値: l_locate_value_row

をこれらは、その引数です私は探している、例えば私が見ていvityata

target_sheetシート(vba_nameであるべきである)Iが第2の値ではなく、最初のものを探していた場合、私は

Optional l_values_found As Long = 1を探していた

Optional l_col As Long = 1カラム、私は2を与えるでしょう。

したがって、l_locate_value_row("vityata",tbl_main)は、最初の行を返します。ここで、vityataが見つかります。値が見つからない場合は、-1を返します。

Public Sub Decrement(value_to_decrement, Optional l_minus As Long = 1) 

    value_to_decrement = value_to_decrement - l_minus 

End Sub 

Public Function l_locate_value_row(target As String, target_sheet As Worksheet, Optional l_col As Long = 1, Optional l_values_found As Long = 1) As Long 

    For Each my_cell In target_sheet.Range(target_sheet.Cells(l_col, 1), target_sheet.Cells(Rows.Count, l_col)) 

     If target = my_cell Then 
      If l_values_found = 1 Then 
       l_locate_value_row = my_cell.Row 
       Exit Function 
      Else 
       Call Decrement(l_values_found) 
      End If 
     End If 
    Next my_cell 

    l_locate_value_row = -1 

End Function 
+0

あなたのすべての入力をありがとう。私はVBAに全く新しいので、私がやってきたのはレコード機能を使っていくつかのコードをコピーし、それを以前の投稿から修正することでした。 – pete4monc

+0

@Mattsマグ。シート1を検索するにはVBAが必要です。最初のスクラップコード、つまりSHRINKAGEがシート2にあるすべてのインスタンスを見つけ、シート3にSHRINKAGEがあればすべてのインスタンスをペーストします。しかし、上位5つのスクラップコードだけがすべてではありません。 – pete4monc

+0

私はここにいくつかのコードを投稿しようとしましたが、うまくいきませんでしたか? – pete4monc

関連する問題