VBA:在列中搜索值,如果相邻单元格不为空,则查找与该值匹配的下一个单元格

时间:2018-04-09 13:32:28

标签: vba excel-vba excel

我在vba中编码很新手(我实际上是在现场学习,因为我已被要求这样做),而且我遇到了一些麻烦。

我需要的是能够搜索值{clave},然后将当前日期插入到相邻的单元格中,但是我没有找到方法来执行它而不会覆盖第一个匹配项。< / p>

起初我以为我可以用Loop做到这一点,但是我不能完全按手指而已,我一直在圈子里跑。

我是否找不到解决方案,我只是将其保留原样,但继续我的代码:

Private Sub buscarbtn_Click()
Dim clv1
Dim rnng As Range

clv1 = clavebx.Value

'Insert date
prontuario1.Range("V:Z").Find(what:=clv1, LookIn:=xlValues, LookAt:=xlWhole).Offset(0, -6).Value = Date


'This isn't really relevant, just calling some data into the userform
busbox.Value = Hoja4.Range("D7").Value
mrcbox.Value = Hoja4.Range("D5").Value
corridabox.Value = Hoja4.Range("D8").Value
namebox.Value = Hoja4.Range("D4") & " - " & Hoja4.Range("D6")
fechabox.Value = Date

End Sub

快速查看我的表格,以便了解我正在尝试做的事情。

Table

提前谢谢!

1 个答案:

答案 0 :(得分:0)

找到CLAVE ID后,检查单元格值是否为空,如果不为空则放置日期值。

Private Sub buscarbtn_Click()

Dim clv1 As String
Dim rnng As Range

Dim clave_found As Range

clv1 = clavebx.Value

'Insert date

Set clave_found = prontuario1.Range("V:Z").Find(what:=clv1, LookIn:=xlValues, LookAt:=xlWhole).Offset(0, -6)

With clave_found
    If .Value = vbNullString Then
        .Value = Date
    Else
        MsgBox "The [CLAVE] ID found with date: " & .Value
    End If

End With

'This isn't really relevant, just calling some data into the userform
busbox.Value = Hoja4.Range("D7").Value
mrcbox.Value = Hoja4.Range("D5").Value
corridabox.Value = Hoja4.Range("D8").Value
namebox.Value = Hoja4.Range("D4") & " - " & Hoja4.Range("D6")
fechabox.Value = Date

End Sub