2013-05-29 123 views
-2

我有2个不同的工作簿与一组参数,例如,汽车零件编号,销售价格等。这两种不同的工作簿将始终具有相同的汽车零件编号,但它们并不合适。所以我正在考虑使用vlookup来将一个工作簿上的参数与各个部分的数字相关的参数进行匹配。excel宏for vlookup

因此,我使用vlookup来执行此任务。它可以工作,但我想用宏来实现,所以我不需要每次都手动执行vlookup。考虑到工作簿(文件名)每次都会有所不同,是否可以创建这样的宏?

我实际上尝试录制宏,vlookup记录它需要的与文件名有关的参数。

编辑:代码注释:

Sub Macro1() 
    ActiveCell.FormulaR1C1 = "=VLOOKUP('[TI_DBP_effective_06 May 2013.xls]NON SLL'!C1,'[TI_DBP_effective_06 May 2013.xls]NON SLL'!C1:C3,3,FALSE)" 
    Range("I1").Select Selection.AutoFill Destination:=Range("I1:I9779") 
    Range("I1:I9779").Select 
End Sub 
+0

是的,绝对有可能。请发布您已有的代码(修改您的问题以包含您的宏)。应该很容易改变它,以便文件名是可变的,并且可以从标准的Windows文件选择器对话框中选择。 –

+0

子宏1() ' ' ActiveCell.FormulaR1C1 = _ “= VLOOKUP( '[TI_DBP_effective_06五月2013.xls] NON SLL' C1 '[TI_DBP_effective_06五月2013.xls] NON SLL' C1:!C3 ,3,FALSE)” 范围( “I1”。)选择 Selection.AutoFill目的地:=范围( “I1:I9779”) 范围( “I1:I9779”)选择 结束子 –

+0

那宏我有...我用其中一个参数作为TI_DBP_effective搜索的vlookup只是其中一个文件,我将在其上执行此类操作。我应该如何编辑宏? –

回答

0

尝试这样的事情。您必须将此宏放在您的个人宏工作簿中,以便它始终可用,无论哪些工作簿已打开。它会提示你输入两个文件,然后打开它们,并插入公式。让我知道它是否会给您带来麻烦,因为我现在无法测试它。

注意:这将查找您选择的单元格的左列的值列,然后查看另一个文件的列1:3。根据需要修改。

Sub Macro1() 
    Dim file1 As String 
    Dim file2 As String 
    Dim wbSource As Workbook 
    Dim wbLookup As Workbook 
    Dim startRange As Range 

    file1 = Application.GetOpenFilename(Title:="Select the file to update") 
    If Len(Dir(file1)) = 0 Then Exit Sub 
    file2 = Application.GetOpenFilename(Title:="Select the LOOKUP file") 
    If Len(Dir(file2)) = 0 Then Exit Sub 

    Set wbLookup = Workbooks.Open(file2) 
    Set wbSource = Workbooks.Open(file1) 

    On Error Resume Next 
    Set startRange = Application.InputBox("Select the first cell for the formula", "Autofill VLOOKUP", Type:=8) 
    On Error GoTo 0 
    If Not startRange Is Nothing Then 
     Application.Goto startRange 
     startRange.FormulaR1C1 = "=VLOOKUP('[" & wbSource.Name & "]NON SLL'!RC[-1],'[" & wbLookup.Name & "]NON SLL'!C1:C3,3,FALSE)" 
     startRange.AutoFill Destination:=startRange.End(xlDown) 
    End If 

End Sub 
+0

什么是错误信息? –

+0

也许你的R1C1表示法都是错误的。请参阅上面的修订版,但这仍然会导致下一行的“自动填充”错误。您现在必须先解决这个问题,并记住这是一个协作网站,而不是将您的工作外包给其他人的地方。 –

+0

我试图将自动填充行(最后一行)更改为固定行,即在第i行。但是,错误是前面的语句,当我将第一个查找参数更改为源文件时,它不会工作,但如果更改到查找文件,它会。我很抱歉,但我真的尝试了我可以研究的一整天,但我不知道什么是错的。感谢您的帮助,我真的被卡住了。 –