2016-11-29 40 views
0

我抄,改變VBA的負荷,試圖適應它爲我的電子表格和 我設法所有過濾,複製粘貼,創建圖表的東西,但我有麻煩(我是VBA編碼新手)。輸入框搜索詞,然後行復制到另一個工作表

在Sheet1我的所有報廢的原因(過濾從最大到最小)的列表。 我需要搜索的Sheet 1中頂部5廢料原因所有實例Sheet 2中(細節的負載),然後片材2的整個行/ s的複製到Sheet。

Sheet1

Sheet2

+0

那麼...你有什麼特殊問題?你有什麼嘗試,你在哪裏難倒?你是否搜索過「InputBox」和「Range.Find」? –

回答

0

如果我有一個已知的連續搜索的值,我用的是這樣的: l_locate_value_row

這些都是它的參數:

target值我正在尋找,例如vityata

target_sheet片我在看(應與vba_name)

Optional l_col As Long = 1柱,其中我尋找

Optional l_values_found 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馬克杯。我需要一個VBA通過片材1來搜索找到的第一個廢料代碼,即收縮然後發現在片材2的它的所有實例,然後貼所有實例,如果收縮到片3.然後做爲下一個廢料代碼OVERMAKES相同。但只有前5個廢料代碼不是全部。 – pete4monc

+0

我試圖在這裏發佈一些代碼,但它沒有工作? – pete4monc

相關問題