【问题标题】:Input box to search for word and then copy row to another sheet输入框搜索单词,然后将行复制到另一个工作表
【发布时间】:2016-12-03 03:41:55
【问题描述】:

我已复制并更改了 VBA 负载,以尝试使其适合我的电子表格和 我已经管理了所有的过滤、复制粘贴、创建图表,但是遇到了麻烦(我是 VBA 编码的新手)。

在 sheet1 中,我列出了所有报废原因(从最大到最小过滤)。 我需要在 sheet2(大量细节)中搜索 sheet1 中前 5 个报废原因的所有实例,然后将工作表 2 的整行复制到 sheet3。

【问题讨论】:

  • 那么...您遇到的具体问题是什么?你试过什么,你在哪里难倒?你搜索过InputBoxRange.Find吗?

标签: vba excel


【解决方案1】:

如果我必须在已知行中搜索一个值,我会使用如下内容: l_locate_value_row

这些是它的论据:

target 我正在寻找的值,例如生命力

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

【讨论】:

  • 感谢您的所有意见。我对 VBA 完全陌生,所以我一直在做的就是使用记录工具并处理一些代码,然后从以前的帖子中修改它。
  • @Matts 马克杯。我需要一个 VBA 来搜索表 1。它找到第一个废代码,即 SHRINKAGE,然后在表 2 上找到它的所有实例,然后将所有实例(如果 SHRINKAGE)粘贴到表 3 上。然后对下一个废代码 OVERMAKES 执行相同操作。但仅在前 5 个废代码上并非全部。
  • 我尝试在这里发布一些代码,但没有成功?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多