我的问题是:如何通过VBA将多个vLookup公式添加到一个单元中?

我知道我可以像这样添加一个vLookUp:

... = Application.WorksheetFunction.vLookUp("Search","Matrix","Index")

我的问题是:我有一个255页的工作簿,在我的“汇总表”中,我需要在这些255个工作表中搜索所需数据的变量公式。 因此,excel中宏的输出需要类似于(全部都在一个单元格中):

=vLoookUp($A2;Sheet1!A1:A1000;2)+SVERWEIS($A2;Sheet2!A1:A1000;2)+ ...(255 times)

甚至可以用VBA做类似的事情吗?

这是我用来将不同选项拆分为255张纸的代码:

到目前为止,这是我编写的用于拆分股票不同代码的代码:(虽然有些奏效,但我可以肯定它的效率不是很高,我是所有此编程知识的新手)

Sub Sheets()
Application.ScreenUpdating = False
ActiveWindow.WindowState = xlMinimized

Dim Data As String
Dim i As Long
Dim k As Long
Dim x As Long
Dim y As String


For i = 2 To 255

Sheetname = Worksheets("Input").Cells(i, 1).Value
Worksheets.Add.Name = Sheetname
ActiveSheet.Move After:=Worksheets(ActiveWorkbook.Sheets.Count)

x = 1

For k = 2 To 876
Data = Worksheets("Input").Cells(i, k).Value
y = Cells(1, x).Address(RowAbsolute:=False, ColumnAbsolute:=False)
BloomB = "=BDH(" & y & ",""TURNOVER"",""8/1/2011"",""4/30/2016"",""Dir=V"",""Dts=S"",""Sort=A"",""Quote=C"",""QtTyp=Y"",""Days=T"",""Per=cd"",""DtFmt=D"",""UseDPDF=Y"")"
Worksheets(Sheetname).Cells(1, x) = Data
Worksheets(Sheetname).Cells(2, x) = BloomB
x = x + 2
Next k

Application.Wait (Now + TimeValue("0:00:05"))
Next i

ActiveWindow.WindowState = xlMaximized
Application.ScreenUpdating = True
End Sub

#1楼 票数:0

抱歉,但这听起来像是一个非常糟糕的设计。 也许Access或SQL Server更适合这种任务。 此外,您知道VLOOKUP函数将返回第一个匹配项,但是没有后续匹配项。 只是想让您意识到这一点。 好的,现在尝试一下。

Function VLOOKAllSheets(Look_Value As Variant, Tble_Array As Range, _
                          Col_num As Integer, Optional Range_look As Boolean)
''''''''''''''''''''''''''''''''''''''''''''''''
'Written by OzGrid.com
'Use VLOOKUP to Look across ALL Worksheets and stops _
at the first match found.
'''''''''''''''''''''''''''''''''''''''''''''''''

Dim wSheet As Worksheet
Dim vFound

On Error Resume Next

    For Each wSheet In ActiveWorkbook.Worksheets
        With wSheet
        Set Tble_Array = .Range(Tble_Array.Address)
            vFound = WorksheetFunction.VLookup _
            (Look_Value, Tble_Array, _
            Col_num, Range_look)
        End With
        If Not IsEmpty(vFound) Then Exit For
    Next wSheet

    Set Tble_Array = Nothing
    VLOOKAllSheets = vFound

End Function

一切的完整描述在这里。

http://www.ozgrid.com/VBA/VlookupAllSheets.htm

  ask by Micha Brugger translate from so

未解决问题?本站智能推荐:

1回复

使用vba应用vlookup后如何获取公式?

我有VBA脚本,它从一个excel文件到另一个文件应用vlookup。 它的工作正常,但输出excel文件仅包含输出数据,但我需要该vlookup输出的公式,因为接下来我需要通过使用复制粘贴应用相同的内容,因此我需要帮助以在输出excel中获得公式。 这是我的VBA脚本 执行完此脚本后,
4回复

VBA,优化VLookup/公式

我有一个代码,大部分是通过宏记录器完成的。 运行非常慢。 我认为这是由于vlookups或公式引起的,任何人都可以帮助使此代码更快吗? 我也有过滤,复制和粘贴功能,怀疑它们是否会减慢速度。 也许仅仅是因为它正在用于大型数据集。 可以做什么?
1回复

在VBA中结合2个vlookup公式

我需要一些帮助。 我想从12张纸中抓取2列,C(净关闭数量)和T(废品率),并将值与相应的产品代码匹配。 我对C和T列使用2种不同的vlookup公式,如下所示: = VLOOKUP($ A2:$ A226,'01'!$ A $ 2:$ T $ 144,3,FALSE)列C(净关闭数量
2回复

在vlookup公式上excel宏vba

嗨,我是excel宏的新手。 我想为vlookup创建一个宏,以便我可以应用于许多单元格,但它不起作用。 我想在当前工作表中查找一个值到另一个工作表的范围以返回唯一值。 请帮忙! :)
1回复

在具有筛选条件的VBA中使用Vlookup

我想在这里完成的是 1)是要对O列中的值进行迭代,对于非null的值,请进行迭代-过滤名为DATA的工作表,以仅显示B列= X的值,并使用VLOOKUP()将查找值返回到P列中的对应行 2)如果O列为空,则过滤标题为DATA的表以仅显示B列> X的值,并使用VLOOKUP()将查
4回复

如何使用vlookup(公式)在VBA中搜索字符串

大家好,我尝试使用vlookup公式时遇到VBA问题: 它一直告诉我“清除”部分是语法错误。 有人可以告诉我如何处理吗? 先感谢您。
1回复

Vba和VLookup:插入公式与读取公式结果

我在Excel vba中工作,想读取VLookup公式的结果。 当我将公式本身插入单元格中时... ...一切正常。 但是当我尝试读取相同的公式并将结果保存到变量中时... ...,编号无效,并报告错误编号。 1004。 有任何想法吗? 为了澄清起见,这些是公式的参数:范围
2回复

具有Vlookup功能的VBA

我有两张纸,Sht1和sht2。 使用sht1,我总是查看B列,并检查ID是否与sht2的B列匹配,如果它们匹配,则将sht1的Q列值复制到sht2。 我尝试完成以下代码,但无法获得结果,代码中未显示错误。 我不知道我的代码有什么问题。 谁能帮我摆脱这个。