Друзья немного сократить код VBA

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

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

Ребят, написал код. Но он слишком большой. очень много If. Как бы мне его сократить. Механика кода проста. Есть сводная таблица, он оттуда просматривает значения и суммирует их вставляя в определенные ячейки результат моего вычисления. Т.е он находит сначала 2011 и все что меньше, выдает сумму, потом по 2012 также и до 2016.

Решение задачи: «Друзья немного сократить код VBA»

textual
Листинг программы
Option Explicit
 
Sub syma()
Dim w As Worksheet
Dim x As Integer
Dim a, b, c, d, e, f, lr As String
a = "2012"
b = "2013"
d = "2014"
e = "2015"
f = "2016"
lr = Cells(Rows.Count, 1).End(xlUp).Row - 1
Set w = ActiveWorkbook.Sheets("Т3")
w.Range(w.Cells(4, 3), w.Cells(9, 3)).ClearContents
w.Range(w.Cells(4, 5), w.Cells(9, 5)).ClearContents
w.Range(w.Cells(4, 7), w.Cells(9, 7)).ClearContents
For x = 5 To lr
c = Cells(x, 1)
Select Case Left(c, 4)
Case a: w.Cells(5, 3) = w.Cells(5, 3) + Cells(x, 2)
Case b: w.Cells(6, 3) = w.Cells(6, 3) + Cells(x, 2)
Case d: w.Cells(7, 3) = w.Cells(7, 3) + Cells(x, 2)
Case e: w.Cells(8, 3) = w.Cells(8, 3) + Cells(x, 2)
Case f: w.Cells(9, 3) = w.Cells(9, 3) + Cells(x, 2)
Case Else
w.Cells(4, 3) = w.Cells(4, 3) + Cells(x, 2)
w.Cells(4, 5) = w.Cells(4, 5) + Cells(x, 4)
w.Cells(4, 7) = w.Cells(4, 7) + Cells(x, 6)
 
End Select
Next x
End Sub

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


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

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

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