【问题标题】:Trying to add vlookup to Excel尝试将 vlookup 添加到 Excel
【发布时间】:2018-01-25 16:45:35
【问题描述】:

我正在尝试创建一个公式,该公式将检查单元格是否在 B 列中有值,然后在 A 列中输入一个 vlookup。作为标准公式,它看起来像

=VLOOKUP(B2,'Date Shown'!A:E,7,FALSE)

我希望根据最初检查的单元格更改查找值。我有下面的公式可以检查并添加一个值到相邻的单元格,我试图修改它以进行 vlookup,但不具备正确创建 vlookup 的知识。感谢您的帮助,谢谢!

Option Explicit

Sub Macro1()

Dim r As Range
Dim LastRow As Long

With Sheets("Date Hidden")
    LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row

    For Each r In .Range("B2:B" & LastRow)
        If r.Value <> "" Then
            r.Offset(0, -1).result = Application.WorksheetFunction.VLookup(Sheets("Date Hidden").Range("A2"), Sheets("Date Shown")A:G, 7, False)
        End If
    Next r
End With

End Subs

显示日期:

A 列 // G 列

简 // 10/1/17

日期隐藏表

A列 //B列
(空)//简

【问题讨论】:

  • Sheets("Date Shown")A:G 应该是Sheets("Date Shown").Range("A:G")
  • 感谢您的快速回复。我收到以下错误“无法获取工作表函数类的 vlookup 值”有什么想法吗?
  • @EricL 你知道该值是否存在于数组中吗?好像找不到了。
  • 在工作表“隐藏的日期”B 列有数据我正在尝试查找,在工作表“显示的日期”列 A:G 有数据,列 A 具有与“隐藏的日期”相同的标识符"s 列 B。所以第一张表中的 B 列有一个值为“3”、“4”和“5”的单元格,并且这些相同的值也在第二张表 A 列的某些单元格中。
  • r.Offset(0, -1).result = 更改为r.Offset(0, -1).Value = 会发生什么?我不相信result 是一个有效的属性。

标签: vba excel vlookup


【解决方案1】:

修改了一点你的代码:

    Option Explicit

    Sub Macro1()

    Dim i As Long
    Dim date_hidden_range As Range
    Dim last_row As Long

    With Sheets("Date Hidden")
        last_row = .Cells(.Rows.Count, "B").End(xlUp).Row

        Set date_hidden_range = .Range("B2:B" & last_row)

        For i = 1 To date_hidden_range.Cells.Count
            If date_hidden_range(i).Value <> "" Then
                MsgBox date_hidden_range(i).Value
                date_hidden_range(i).Value = Application.WorksheetFunction.VLookup(Sheets("Date Hidden").Range("A" & i), Sheets("Date Shown").Range("A:G"), 7, False)
            End If
        Next i

    End With

    End Sub

选项 2

    Option Explicit

    Sub Macro1()

    Dim i As Long
    Dim cell_range As Range
    Dim date_hidden_range As Range
    Dim last_row As Long

    With Sheets("Date Hidden")
        last_row = .Cells(.Rows.Count, "B").End(xlUp).Row

        Set date_hidden_range = .Range("B2:B" & last_row)

        For Each cell_range In date_hidden_range
        i = 2
            If cell_range(i).Value <> "" Then
                MsgBox cell_range(i).Value
                cell_range(i).Value = Application.WorksheetFunction.VLookup(Sheets("Date Hidden").Range("A" & i), Sheets("Date Shown").Range("A:G"), 7, False)
            End If
        i = i + 1
        Next cell_range

    End With

    End Sub

检查这是如何工作的,希望这对你有帮助。

【讨论】:

  • 嗨,R_Student,不知道这个消息框是干什么用的。我已尽力在我的第一篇文章中输入一个示例。我需要运行任何 vlookup 来将该数据输入“日期隐藏”表的 A 列。可能有 200 行唯一标识符可供运行。您的宏似乎只是使用第 2 行的唯一 ID 为每个人添加日期。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-12
  • 2014-08-29
  • 2014-10-26
  • 1970-01-01
相关资源
最近更新 更多