Сокращение, оптимизация, замена кода - VBA

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

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

Здравствуйте. Столкнулся с проблемой Compile error: Procedure too large. Помогите сократить код иди дайте другую идею для реализации задуманого. Задумано так: в открытом документе, в первой попавшей таблице, в каждой строке 4-го столбца выделяется текст ячейки. Делается проверка выделенного текста с заданным текстом, если удовлетворяет - переменной присвоить соответственное значение. Получается 500 строк If Selection.Execute(FindText:=" ", MatchCase:=True, Wrap:=wdFindStop, MatchWildcards:=True) = True Then переменная = " "

Решение задачи: «Сокращение, оптимизация, замена кода»

textual
Листинг программы
dim a(1 to 4, 1 to 2) as String
a(1,1)="Ладижин": a(1,2)="02373"
a(2,1)="Вінниц": a(2,2)="02383"
a(3,1)="Нововолинськ": a(3,2)="03203"
a(4,1)="Марган": a(4,2)="04213"
For iRow = 2 To ActiveDocument.Tables(1).Rows.Count
Selection.Find.ClearFormatting
for j=1 to 4
if instr(1,"" & (ActiveDocument.Tables(1).Columns(4).Cells(iRow)),a(j,1))>0 and  instr(1,"" & (ActiveDocument.Tables(1).Columns(4).Cells(iRow)),"Жовтнев")>0 and instr(1,"" & (ActiveDocument.Tables(1).Columns(4).Cells(iRow)),"м.")>0 then oblrow = a(j,2): Exit for
next j
next iRow

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


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

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

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