Заменить макросом значения в формулах массива (Excel) - VBA

Узнай цену своей работы

Формулировка задачи:

Доброго времени. На нескольких листах есть формулы массива, в них макросом надо заменить куски "э140" на "э141" Пробую так:
Листинг программы
  1. Dim SKV as String
  2. SKV = "э141"
  3. Dim FA As String
  4. For Each iSheet In ThisWorkbook.Worksheets 'на всех листах
  5. For Each cel In iSheet.UsedRange.Cells 'для каждой ячейки
  6. If cel.FormulaArray Like "*э140*" Then 'если формула массива содержит "э140"
  7. FA = Replace(cel.Formula, "э140", SKV) 'собираем строку, заменяя "э140" на "э141"
  8. cel.FormulaArray = FA 'пытаемся записать нашу фомулу в качестве формулы массива в ячейку.
  9. End If
  10. Next cel
  11. Next
cel.FormulaArray = FA не работает. Пишет "нельзя установить свойство FormulaArray класса Range". Я понимаю, что ему не нравится мой метод выбора ячейки. Как сделать правильно?

Решение задачи: «Заменить макросом значения в формулах массива (Excel)»

textual
Листинг программы
  1. Cells.Replace What:="э140", Replacement:="э141", LookAt:=xlPart

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.933 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут