【问题标题】:Excel - how to match a column header with a row header (dates) and return a lookup value in VBAExcel - 如何将列标题与行标题(日期)匹配并在 VBA 中返回查找值
【发布时间】:2019-01-17 08:53:02
【问题描述】:

我为此苦苦思索,找不到解决办法。有很多公式,但它必须在 VBA 中。

我在 A 列 (A2:A100) 中有一系列文本,在 B 列 (B2:B100) 中有日期,在第 1 行 (C1:Z1) 中有连续的日历日期。对于矩阵/表格中的每个单元格,如果 B 列中的日期与第 1 行中的日期相同,则必须显示相应列 A 中的文本。我不能使用 VLOOKUP 或 MATCH 公式,因为列很窄,并且由于相邻单元格中的公式而不会显示展开的全文。感谢您的任何指导。在下面,N2必须是“电工追逐”,因为N1和B2是一样的。

【问题讨论】:

  • 你能edit你的问题并添加截图吗? • 还请澄清“我在A 列中有一系列文本……并且在B 列中有日期” vs “如果A 列中的日期是……” vs “对应列 B 中的文本” 是文本还是日期?这完全令人困惑。屏幕截图会澄清一切。
  • 如果你想让文本流过空单元格,它们必须是真正的空单元格,所以公式在这里无济于事——你需要像@harassed-dad 建议的那样以编程方式进行。

标签: excel vba


【解决方案1】:

我认为您想要这个(并且您的 A 列和 B 列弄错了)

 Sub LoopAndDisplay
 Dim r as range
 For each r in range("C2:Z200")
     If cells(1,r.column) = cells(r.row,2) then 'if date above matches column B then 
        r = cells(r.row,1)  'display contents of column A
     End If
 Next R
 End Sub

【讨论】:

  • 谢谢你骚扰的爸爸,但是当我尝试你的代码时,我的文档冻结了。看起来它进入了一个无限循环。
  • 不幸的是,我无法查看图像,所以我不得不猜测您的布局 - 但它在这里有效。尝试使用 f8 单步执行代码并通过将鼠标悬停在单元格语句上来检查它们的值。
猜你喜欢
  • 1970-01-01
  • 2018-05-04
  • 1970-01-01
  • 2021-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-12
相关资源
最近更新 更多