VBA, используя часть формулы в качестве значения celll - PullRequest
0 голосов
/ 09 марта 2020

Ошибка моего проекта

У меня есть формулы с переменной 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 Уже потерял два дня для этого. Был бы чрезвычайно благодарен любому, кто мог помочь.

1 Ответ

0 голосов
/ 09 марта 2020

Из вашего вопроса не совсем ясно, какой вы хотите получить результат, но вот предположение:

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, чтобы приспособиться это.

...