使用 VBA 根据条件(如 DataFrame.loc)从 sheet 范围中提取数据

Extract data from sheet range based on condition (like DataFrame.loc) using VBA

我在 VBA 中遇到了一个问题,我不知道该怎么做,因为我对 VBA 还很陌生,如果有人能指导我,我将不胜感激。所以你们中的一些 python 编码员的问题就是简单地做 DataFrame.loc[DataFrame['Name']=='John'][-1]。这就是我的意思:

这就是我在传播中的内容sheet 让我们从单元格范围 (A1:E3) 说起

Name Bio Date
John Loves travelling to the mountains 11/20
Joe plays computer 11/20
John goes to the sea a lot 01/22
Jenny dances salsa 02/22

在单独的 sheet 上,我有 2 个按钮和 2 个单元格

  1. 向数据库添加信息(内置VBA)
  2. 提取最新信息到数据库
  3. 第一个单元格允许我输入名称,例如 'John'
  4. 允许我进入生物的第二个单元格(或等效地将生物提取到)

我如何在 VBA 中构建代码,假设我输入 John,然后单击按钮提取简介,我将能够将 John 的最新 Bio(日期为 01/22 的)放入另一个单元格?

谢谢

如果您使用的是旧版本的 Excel,您可以使用 SUMPRODUCT 执行此操作:

=SUMPRODUCT(MAX(--(A2:A5=G5)*C2:C5))

在Excel365中,可以使用函数MAXIFS:

MAXIFS function

您好,我为其他正在寻找类似内容的人找到了解决方案,并已关闭此查询。

如果我们设置一个数据数组,可以用来存储sheet范围内的table。然后我们可以这样遍历数据:

Dim rowCount
Dim dataArray As Variant
Dim bio

For i = 1 To rowCount
  
    If dataArray(i, 1) = Name Then
        bio = dataArray(i, 2)
    End If
Next
Sheets("Main").Range("A5") = bio

其中 rowCount 应该是 table 中的行数,这可以在 sheet 的单元格内指定,并且 Name 可以是任何名称,例如 'John'