Excel VlookUp从另一个工作簿将单元格留到VBA中

时间:2018-08-08 09:35:20

标签: excel vba function vlookup

大家好,到目前为止,我的VLookUp函数正在运行,现在我想将其转换为VBA函数。

我的VLookUp:

=VLOOKUP(A6;'[test.xls]Sheet1'!$A:$B;2;0) 'example for Cell A6, which can vary

现在,我想将其放入可以调用的VBA函数中。 因此,如果该函数被称为“ A6”,则将被该函数所在位置的左侧单元格“覆盖”。

我尝试了以下代码:

Sub lookup()
        Dim x1 As String
        x1 = ActiveCell.Offset(0, -1).Select
        VLOOKUP(x1,'[test.xls]Sheet1'!$A:$B;2;0)
End Sub

按预期工作需要什么?

我感谢任何提示。


更新:

对不起,尚不清楚。 “ test.xls”是另一本工作簿。该代码应在名为“ missing.xls”的文件中运行。

2 个答案:

答案 0 :(得分:2)

有两种方法。

方法1:使用.formula

sub method1()
    dim x1 as range

    set x1 = ActiveCell.Offset(0, -1)
    x1.formula = "=VLOOKUP(A6,'[test.xls]Sheet1'!$A:$B,2,0)"
end sub

方法2:使用.value

sub method2()
    dim x1 as range

    set x1 = activecell.offset(0, -1)
    x1.value = application.vlookup(range("A6").value, workbooks("test.xls").worksheets("Sheet1").range("A:B"),2,0)
end sub

答案 1 :(得分:1)

这应该做到:

@Entity
public class MyClass {
...
}

因此 http://example.com/wp-admin/admin.php?page=wp_socializer&tab=buttons 获得了函数所在的单元格,然后您可以从该单元格中使用Function MyLookup() Dim source As Workbook Dim current As Range Set current = Application.Caller Set source = Workbooks("test.xls") MyLookup = Application.WorksheetFunction.VLookup(current.Offset(0, -1).Value, source.Sheets(1).Range("A:B"), 2, False) End Function 来执行Application.Caller

编辑

要使此查询正常运行,VLOOKUP()需要打开。