【问题标题】:VBA using part of formula as a celll valueVBA使用公式的一部分作为单元格值
【发布时间】:2020-06-21 11:54:53
【问题描述】:

我的项目再次失败

我有带有变量 Brand 的公式可以动态更改(AF 列)。基本上我想要的只是将品牌提取到公式列旁边(AE)的列中,以方便视觉

For i = LBound(Brand) To UBound(Brand)
        Range("AF" & i + 2).Formula = "=COUNTIFS(C:C," & RTrim(Month(Mesyaz3)) & _
                   ",H:H,""Headphones"",F:F," & Chr(34) & Brand(i) & Chr(34) & ")"
  Next i

Range("AF:AF").Sort Key1:=Range("AF2"), Order1:=xlDescending, Header:=xlYes
ActiveSheet.Range("AG2:AG8").Formula = ActiveSheet.Range("AF2:AF8").Formula
ActiveSheet.Range("AH2:AH8").Formula = ActiveSheet.Range("AF2:AF8").Formula

Dim ws As Worksheet
Set ws = Worksheets(1)
Dim j As Variant
j = Application.Match(""" & Brand(i) & """, ws.Range("AF2:AF8"))
ActiveSheet.Range("AE2").Value = Application.Index(ws.Range("AF2:AF8"), j, 0)

我得到 #N/A 已经为此丢失了两天。将非常感谢任何可以提供帮助的人。

【问题讨论】:

  • 您是否尝试过单步执行代码以查看错误发生的位置?
  • 另外,当您使用Application.Match 结果加载j 时,您使用的是不在循环内的i,因此将设置为last上一个 For..Next.. 循环中的值。
  • 包含您尝试从中提取的公式的示例将有很大帮助。
  • @TimWilliams 公式在代码中 "=COUNTIFS(C:C," & RTrim(Month(Mesyaz3)) & _ ",H:H,""Headphones"",F:F ," & Chr(34) & Brand(i) & Chr(34) & ")"
  • @CLR 目前的代码没有错误,只是没有返回正确的值 - 在 "=COUNTIFS(C:C," & RTrim(Month(Mesyaz3) 中使用的品牌) & _ ",H:H,""耳机"",F:F," & Chr(34) & Brand(i) & Chr(34) & ")" 公式

标签: excel vba indexing find match


【解决方案1】:

您的问题并不完全清楚您想要的输出,但这是一个猜测:

For i = LBound(Brand) To UBound(Brand)
    Range("AF" & i + 2).Formula = "=COUNTIFS(C:C," & RTrim(Month(Mesyaz3)) & _
               ",H:H,""Headphones"",F:F," & Chr(34) & Brand(i) & Chr(34) & ")"
    Range("AE" & i + 2).Value = Brand(i)
Next i
Range("AE:AF").Sort Key1:=Range("AF2"), Order1:=xlDescending, Header:=xlYes

我添加了一行将品牌写入 AE,并更改了 Sort 以适应这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多