Excel VBA - 如何在列中查找值并返回其所在的行

时间:2016-08-18 15:21:08

标签: vba excel-vba excel

我目前使用for循环查看HDD数据库表中的A列,当找到匹配的搜索条件时,它会将该行中的所有信息复制到指定区域。

我正在尝试使用相同的for循环来告诉我找到搜索条件的哪一行,这样我就可以从HDD数据库表中删除该行。

尝试了一些事情,但似乎没有任何效果。

非常欢迎任何帮助。

Private Sub EditButton_Click()

    Dim Userentry As String
    Dim i As Long
    Dim ws, ws1, ws2 As Worksheet
    'Dim found As Range
    Dim RowNumber As String
    Set ws = Sheets("HDD database")
    Set ws1 = Sheets("HDD log")
    Set ws2 = Sheets("Sheet3")


    Userentry = editTxtbox.Value
    'ws1.Range("A36").Value = Userentry

    For i = 1 To ws.Range("A" & Rows.Count).End(xlUp).Row
        If (ws.Cells(i, 1).Value) = Userentry Then
            ws2.Range("A1").Offset(1, 0).Resize(1, 8).Value = _
                      ws.Cells(i, 1).Resize(1, 8).Value
        End If

    Next i

    addnewHDDtxtbox.Value = ws2.Range("A2")
    MakeModeltxtbox.Value = ws2.Range("B2")
    SerialNumbertxtbox.Value = ws2.Range("C2")
    Sizetxtbox.Value = ws2.Range("D2")
    Locationtxtbox.Value = ws2.Range("E2")
    Statetxtbox.Value = ws2.Range("F2")


    For i = 1 To ws.Range("A" & Rows.Count).End(xlUp).Row
        If (ws.Cells(i, 1).Value) = Userentry Then
            RowNumber = ws.Cells.Row
        End If
    Next i

    ws1.Range("I3").Value = RowNumber

End Sub

2 个答案:

答案 0 :(得分:0)

变化:

RowNumber = ws.Cells.Row

RowNumber = i

答案 1 :(得分:0)

我认为这应该有所帮助。使用Range.Find()应该加快一点。如果你想要更多,我可以编辑这个,只需评论。

<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>

<p>
  <pre id="result"></pre>
</p>