Автор Тема: макрос на вставку формулы в ячейку excel по цвету  (Прочитано 135 раз)

Оффлайн Йен

  • Посетитель форума
  • Сообщений: 13
в 5 ответе писал СУММЕСЛИ('файл2'!$A:$A;$A3;'файл2'!AI:AI)

Оффлайн Администратор

  • Administrator
  • Сообщений: 1787
Формула в режиме R1C1 по-другому выглядит.

Оффлайн Йен

  • Посетитель форума
  • Сообщений: 13
СУММЕСЛИ('[файл1.xlsb]лист1'!C1;RC1;'[файл1.xlsb]лист1'!C)

да вот так поменял

Оффлайн Администратор

  • Administrator
  • Сообщений: 1787
Не совпадают две формулы. Вы не вручную сделайте формулу, а перейдите в режим R1C1 и скопируйте формулу на форум.
СУММЕСЛИ('файл2'!$A:$A;$A3;'файл2'!AI:AI)
СУММЕСЛИ('[файл1.xlsb]лист1'!C1;RC1;'[файл1.xlsb]лист1'!C)

Оффлайн Йен

  • Посетитель форума
  • Сообщений: 13
СУММЕСЛИ('[файл1.xlsb]лист1'!C1;RC1;'[файл1.xlsb]лист1'!C) вот эта уже не вручную, это первая белая ячейка, куда нужно вставить макросу данную формулу

Оффлайн Администратор

  • Administrator
  • Сообщений: 1787
С каким фрагментом должен работать макрос? Пользователь выделил фрагмент и затем запустит макрос?
Или макрос должен найти низ и право таблицы?

Оффлайн Йен

  • Посетитель форума
  • Сообщений: 13
да, именно так - "Пользователь выделил фрагмент и затем запустит макрос"

Оффлайн Администратор

  • Administrator
  • Сообщений: 1787
Написал вам письмо на почту с заголовком "Письмо с форума". Написал именно на почту, а не на форум.
Написал два письма.

Макрос
Sub Макрос()
   
    Dim Ячейка As Range
   
   
    ' Отключение монитора и формул, чтобы ускорить макрос.
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
   
    ' Вставка формул в выделенный фрагмент в белые ячейки.
    For Each Ячейка In Selection.Cells
        If Ячейка.Interior.Pattern = xlNone Then
            Ячейка.FormulaR1C1 = "=SUMIF([файл1.xlsb]Лист1!C1,RC1,[файл1.xlsb]Лист1!C)"
        End If
    Next Ячейка
   
    ' Включение того, что отключили.
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic

    ' Сообщение.
    MsgBox "Готово.", vbInformation
   
End Sub

Оффлайн Йен

  • Посетитель форума
  • Сообщений: 13
Круто! все работает и быстро! 4 секунды вместо 4 часов! благодарность огромная))