Использование SUMIF до последней строки в vba

#vba #excel

#vba #excel

Вопрос:

Я пытаюсь включить формулу SUMIF в свой макрос. Код в Excel выглядит следующим образом: =SUMIF(‘Проценты WSO’ H2:H46, ‘20140618 кредитов’ D10, ‘Проценты WSO’ S2: S46)

Я установил свой dim as i и lastrow, как integer я уже установил, чтобы я мог найти последнюю строку столбца и продолжить цикл до последней строки. Я также использовал

 Sheets("20140618 Loans").Select
Range("A10").Select
Selection.End(xlDown).Select
lastrow = ActiveCell.Row
  

чтобы найти последнюю строку, заполненную текстом.

Это то, что у меня есть до сих пор:

 Range("W10").select
For i = 10 to lastrow
  

Формула SUMIF будет здесь

 Next i
  

Итак, в основном, что я пытаюсь сделать, это использовать формулу SUMIF в моем макросе, чтобы начать с W10 и продолжать вычислять формулу SUMIF, пока она не достигнет последней строки. Спасибо за помощь и не стесняйтесь задавать любые вопросы.

Комментарии:

1. вы хотите найти последнюю ячейку в заполненной строке или скопировать formaula в последнюю ячейку

2. последняя заполненная ячейка в строке

Ответ №1:

Для задания формулы можно использовать Formula свойство Range объекта.

 Range("W" amp; i).Formula = "=SUMIF('WSO Interest'!H2:H" amp; lastrow amp; _
    ", '20140618 Loans'!D10, 'WSO Interest'!S2:S" amp; lastrow amp; ")"
  

amp; Оператор используется для объединения строк вместе.

Комментарии:

1.Привет, спасибо за ответ. В итоге все идет вниз, но я хочу, чтобы он остановился на последней строке с текстом. Я сделал Range("a1").Select Selection.End(xlDown).Select lastrow = ActiveCell.Row , чтобы найти последнюю строку на листе с текстом в ней. Я хочу, чтобы он остановился на последней строке с текстом в ней и перешел к следующему шагу. Спасибо.

2. Я уверен, что вы можете понять, как использовать оператор if 🙂

Ответ №2:

 Dim r As Range
Set r = Range("W10", Range("W10").End(xlDown)) --Change it per requirement .....
For Each cell In r
 Debug.Print cell.Address --Your Code goes here I guess
Next