Зацикливание макроса - PullRequest
       3

Зацикливание макроса

0 голосов
/ 03 ноября 2010

Я записал макрос для расчета ранжирования продуктов на ежемесячной основе - у меня есть месячные данные о продажах этих продуктов за январь - с начала года я записал макрос для сортировки продаж в порядке убывания и оценил их по мере необходимостиЗацикливайте их все месяцы, которые постоянно меняются, это может быть январь-февраль, январь-май или всякий раз, когда мне нужен этот отчет.Также может измениться количество товаров (строк).

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

Код, который у меня пока есть, ранжируется только по январскому месяцу - я не хочу отдельно запускать макрос для каждого месяца, короче говоря, можно ли циклически запускать макрос для всего месяца ...Кроме того, если новые продукты добавляются, может ли vlookup включать новые продукты?Посоветуйте, пожалуйста.

ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],Sheet1!RC[-1]:R[6]C[4],2)"
    Range("B3").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],Sheet1!R3C1:R9C6,2)"
    Range("B3").Select
    Selection.Copy
    Range("B4:B9").Select
    ActiveSheet.Paste
    Range("B2").Select
    Application.CutCopyMode = False
    Selection.Sort Key1:=Range("B3"), Order1:=xlDescending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    Range("C3").Select
    ActiveCell.FormulaR1C1 = "1"
    Range("C4").Select
    ActiveCell.FormulaR1C1 = "2"
    Range("C5").Select
    ActiveCell.FormulaR1C1 = "3"
    Range("C3:C5").Select
    Selection.AutoFill Destination:=Range("C3:C9"), Type:=xlFillDefault
    Range("C3:C9").Select
    Sheets("Sheet3").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],Sheet2!RC[-1]:R[6]C[1],3,0)"
    Range("B3").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],Sheet2!R3C1:R9C3,3,0)"
    Range("B3").Select
    Selection.Copy
    Range("B4:B9").Select
    ActiveSheet.Paste

Пожалуйста, дайте мне знать, если требуется дополнительная информация.ТИА.

1 Ответ

0 голосов
/ 03 ноября 2010

Во-первых, если вы хотите скопировать формулу в каждую ячейку столбца B

Range("B3").Select 
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],Sheet1!R3C1:R9C6,2)" 
lastRow = Cells(Application.Rows.Count, 2).End(xlUp).Row
Selection.AutoFill Destination:=Range("B:B" & lastRow)

Можете ли вы объяснить структуру вашей книги / таблицы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...