gpt4 book ai didi

vba - Vlookup 一个 Vlookup 的结果

转载 作者:行者123 更新时间:2023-12-04 21:21:19 24 4
gpt4 key购买 nike

在过去的一年里,我对 Excel 已经相当熟练了,我已经为下一步做好了准备,开始使用 VBA。

我尝试实现以下目标:
我想创建一个可以运行多个 Vlookups 的工具来自不同的数据源,并将所有数据组合成一个全面的概览。

  • 第一步:运行 vlookupworksheet1使用来自 worksheet2 的数据
  • 第二步:vlookup 在 worksheet1 中生成的结果, 是要在第二个 vlookup 中使用的新引用数据使用不同工作表的数据 worksheet3

  • 现在我尝试使用以下代码:
    Dim i As Long, r As Long
    r = 4
    For i = 1 To 10000

    On Error Resume Next

    Cells(r, 9).Value = WorksheetFunction.VLookup(Cells(r, 7).Value, Sheets("SPdata").Range("A3:V30321"), 9, 0)
    Cells(r, 11).Value = WorksheetFunction.VLookup(Cells(r, 7).Value, Sheets("SPdata").Range("A3:V30321"), 11, 0)
    Cells(r, 10).Value = WorksheetFunction.VLookup(Cells(r, 9).Value, Sheets("CREBS").Range("C2:D300"), 2, 0)

    r = r + 1

    如您所见,我尝试使用 Cells(r, 9) 的结果在第三个 vlookup 中,匹配来自工作表 CREBS 的数据。
    我遇到的问题是第三个 vlookup 没有产生任何结果。

    此外, On Error Resume Next效果很好,但我想用“不可用”来填补空白

    正如我所说,我对此很陌生。而且我的方法可能不是最有效的,但是如果有人可以帮助我解决问题/或者可以提出更有效的代码,我将不胜感激。

    最佳答案

    一些事情:不要使用On Error Resume Next因为它不仅是一种代码气味(而且是一种刺鼻的气味),而且它还会跳过任何会引起您对错误的注意的错误。

    其次,永远不要在一行上声明多个变量。仅仅因为你可以,并不意味着你应该。

    第三,您需要限定您的范围引用。
    Cells(r, 9).Value真的是ActiveSheet.Cells(r, 9).Value猜猜如果 ActiveSheet 会发生什么代码运行时改变了?

    您正在尝试(低效地)使用 VBA 复制 Excel 中已经存在的内容。例如,打开一个工作簿并创建一个从起始行到结束行的表格(在这种情况下似乎是 4 到 1004)。输入您的最终 VLOOKUP那里的公式。看看它如何自动填充到最后一行,或者让您选择覆盖列中的所有单元格?这是很多比在每一行中编写公式更快,并且效果会更好。

    此外,由于所有这些数据都存在于其他工作表中,您 应该 将这些数据保存在表中,如果这样做,您可以使用这些表名。例如,假设每个表的名称与每个工作表的名称相同。您的 VLOOKUP 看起来像:
    =VLOOKUP([KeyColumn], SPData, Column(SPData[TheDataYouWant]), False)然后,为了覆盖错误,我们稍作修改:
    =IfError(VLOOKUP([KeyColumn], SPData, Column(SPData[TheDataYouWant]), False), "No Results")
    相信我,学习如何有效地做到这一点第一个 将帮助您更好地使用 Excel。

    然后你只需要表(注意我怎么说 三、提示、提示 ),其中第一个表有要计算的数据,第二个表在 中创建一个键第一栏使用该数据,第三个查找它。然后您需要做的就是将原始数据粘贴到您的 中。第一个 表,然后为您的 填充您感兴趣的键第三 table ,瞧!

    另外,如果你错过了,你的第三个 VLOOKUP正在尝试根据与您的第二个 VLOOKUP 相同的 key 来查找 key 使用自 VLOOKUP要求范围内最左边的值作为查找的键。如果你不能做到这一点,无论出于何种原因,学习 INDEX/MATCH第一的。

    拜托,直到你 不能用Excel合理解决问题,避免VBA。

    关于vba - Vlookup 一个 Vlookup 的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48329699/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com