首页 文章

尝试将Vlookup片添加到Excel宏

提问于
浏览
0

我正在尝试将一个Vlookup片段添加到一个长宏中,我正在努力消除一些日常数据操作工作 .

基本上每天我都有四个新的数据列,我使用vlookup比较前一天 . 四个新列位于列C-F中,旧数据位于列M-P中 . 我对列M的vlookup列D,公式在G列中 .

我遇到了一个如何灵活使用我每天使用宏的范围的问题,因为我不想经常更改它 . 行数将在10,000-30,000之间波动 .

这是我的代码 - 我可能会想到这一切都错了 .

Sub Lookup()

Dim i, LastRow
Set i = Sheets("data").Range("F5").End(xlUp)


If Cells(i, "F5").Value <> "" Then
Range(i, "G").Value = WorksheetFunction.VLookup(Cells(i, "D"), Range("N").End(xlDown), 1, False)
End If


End Sub

2 回答

  • 0

    放手一搏

    Sub Sheet2_Button1_Click()
        Dim Rws As Long, rng As Range, Mrng As Range, x
    
        Rws = Cells(Rows.Count, "D").End(xlUp).Row
        Set rng = Range(Cells(1, "G"), Cells(Rws, "G"))
        Set Mrng = Range("M1:M" & Rws)
    
        rng = "=IFERROR(VLOOKUP(D1, " & Mrng.Address & ",1,0),""Nope"")"
    
        '----------If you want it to be just values uncomment the below line--------------
        ' rng.Value=rng.Value
    
    End Sub
    
  • 0

    你有一些向后范围参考 . 我不能说vlookup调用,但你可以从这个部分开始:

    If Cells(i, "F5").Value <> "" Then
    Range(i, "G").Value = WorksheetFunction.VLookup(Cells(i, "D"), Range("N").End(xlDown), 1, False)
    End If
    

    尝试将其更改为此以修复范围声明:

    If Range("F" & i).Value <> "" Then
        Range("G" & i).Value = WorksheetFunction.VLookup(Range("D" & i), Range("N").End(xlDown), 1, False)
    End If
    

相关问题