2016-08-18 58 views
0

我目前使用for循环来查看HDD数据库表中的列A,并且当它找到匹配的搜索条件时,它将所有信息在那一排进入指定区域。Excel VBA - 如何查找列中的值并返回它所在的行

我想使用相同的循环来告诉我哪个行的搜索条件被发现,所以我可以从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 
+0

行属性是你所需要的。 [http://www.mrexcel.com/forum/excel-questions/68015-return-row-number-active-cell.html] – dev1998

+0

我试图正确理解你想在多行匹配时完成什么。你只想得到最匹配的行吗?只有最下面的一排?所有的行?它们都是要删除的,还是只有一个? – Mikegrann

+0

只有数据库表A列中的唯一值。这个想法是在结果返回到日志表后,数据库中的行被识别和删除。开始试图弄清楚哪一行是唯一值,然后将删除位置位。 – Tom85

回答

0

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

'I liked your found :) 
Dim found As Range 
'Set found equal to the cell containing your string 
Set found = ws.Range("A:A").Find(Userentry) 
'Show the row of found if you want 
'MsgBox found.Row 
'Delete found's row 
'ws.found.Rows.Delete 
'Alternately, set the value of I3 to found's row 
ws1.Range("I3").Value = ws.found.row 
+0

不知道为什么,但最后一点不断收到错误。 – Tom85

+0

嗨,谢谢你的信息,我只需要把t放在正确的地方。非常感谢:) – Tom85

+0

没问题,谢谢:)你明白了吗? :) – seadoggie01

0

变化:

RowNumber = ws.Cells.Row 

RowNumber = i 
相关问题