我已经复制并更改了VBA的负载以尝试适合我的电子表格和 我已经管理了所有的过滤,复制粘贴,创建图形的东西,但我遇到了麻烦(我是VBA编码的新手)。
在sheet1中,我列出了所有废品原因(从最大到最小的过滤)。 我需要在sheet1中搜索前5个废料原因的所有实例的sheet2(详细信息),然后将工作表2的整行复制到sheet3。
答案 0 :(得分: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