View difference between Paste ID: fn3VHBMu and 0hLTSAtc
SHOW: | | - or go back to the newest paste.
1
Option Explicit
2-
2+
3
    Row_Start As Integer
4
    Row_End As Integer
5
    Column_Start As Integer
6
    Column_End As Integer
7
End Type
8
Sub grow_control()
9-
9+
10-
10+
11
Dim x As Variant '1ый раздел модели МОБ, где x(i,j) - сколько продуктов i-й отрасли надо затратить, чтобы обеспечить пр-во j-й отрасли
12-
12+
13
Dim z As Variant '3ий раздел модели МОБ, где z(p,j) - первичное распледеление доходов от продаж по различным отраслям
14
Dim Resource_Names, Process_Names, Consumers_Names As Variant 'Переменные, используемые для записи необходимых названий отраслей, потребителей и пр.
15
Dim gdp_expenses As Double 'ВВП, рассчитанный по расходам на конечное потребление
16
Dim gdp_income As Double 'ВВП, рассчитанный по доходам полученным от продаж продукции и ресурсов
17
Dim gdp_3rd_method As Double 'ВВП по методу: ВВП=совокупные затраты покупателей на покупку продуктов - промежуточное потребление + импорт
18
Dim all_consumers_expenses As Double 'Cовокупные затраты покупателей на покупку продуктов (Итого использовано в ценах покупателей)
19
Dim intermediate_consumption_expenses As Double 'Расходы на промежуточное потребление
20
Dim import As Double 'Совокупный импорт
21
Dim production_expenses_matrix() As Double 'Матрица коэффициентов производственных затрат
22
Dim production_final_consumption() As Variant 'Конечное потребление продукции отраслей
23
Dim base() As Double 'База
24
Dim net_income() As Double 'Чистые доходы
25
Dim final_consumption_matrix() As Variant 'Матрица коэффициентов затрат на конечное потребление
26
ThisWorkbook.Sheets("рост").Activate
27
For i = 1 To 3
28
    With Parts_coordinate(i)
29-
Dim total_final_consumption() As Double 'Всего конечное потребление
29+
30
        .Row_End = Cells(1 + i, 5)
31-
31+
32
        .Column_End = Cells(1 + i, 7)
33-
33+
34-
'Сбор координат разделов
34+
35
    Range(Cells(Parts_coordinate(1).Row_Start, Parts_coordinate(1).Column_Start), Cells(Parts_coordinate(1).Row_End, Parts_coordinate(1).Column_End)).Select
36
    x = Selection.Value 'Ubound(x,1) != Ubound(x,2)
37
    Range(Cells(Parts_coordinate(2).Row_Start, Parts_coordinate(2).Column_Start), Cells(Parts_coordinate(2).Row_End, Parts_coordinate(2).Column_End)).Select
38
    y = Selection.Value
39
    Range(Cells(Parts_coordinate(3).Row_Start, Parts_coordinate(3).Column_Start), Cells(Parts_coordinate(3).Row_End, Parts_coordinate(3).Column_End)).Select
40
    z = Selection.Value
41
    Range(Cells(Parts_coordinate(1).Row_Start - 2, Parts_coordinate(1).Column_Start), Cells(Parts_coordinate(1).Row_Start - 1, Parts_coordinate(1).Column_End)).Select
42
    Process_Names = Selection.Value
43-
'Сбор данных из соответствующих разделов
43+
    Range(Cells(Parts_coordinate(1).Row_Start, Parts_coordinate(1).Column_Start - 1),
44-
    'Сбор численной информации
44+
45-
    Range(Cells(Parts_coordinate(1).Row_Start, Parts_coordinate(1).Column_Start), _
45+
46-
    Cells(Parts_coordinate(1).Row_End, Parts_coordinate(1).Column_End)).Select
46+
47
    Range(Cells(Parts_coordinate(2).Row_Start - 2, Parts_coordinate(2).Column_Start),
48-
    
48+
49-
    Range(Cells(Parts_coordinate(2).Row_Start, Parts_coordinate(2).Column_Start), _
49+
50-
    Cells(Parts_coordinate(2).Row_End, Parts_coordinate(2).Column_End)).Select
50+
51
        For k = 1 To UBound(y, 2): gdp_expenses = gdp_expenses + y(i, k): Next
52-
    
52+
53-
    Range(Cells(Parts_coordinate(3).Row_Start, Parts_coordinate(3).Column_Start), _
53+
54-
    Cells(Parts_coordinate(3).Row_End, Parts_coordinate(3).Column_End)).Select
54+
55
    Next
56-
    'Сбор названий
56+
57-
    Range(Cells(Parts_coordinate(1).Row_Start - 2, Parts_coordinate(1).Column_Start), _
57+
    For p = 1 To UBound(z, 2): all_consumers_expenses = all_consumers_expenses + z(1, p): Next  
58-
    Cells(Parts_coordinate(1).Row_Start - 1, Parts_coordinate(1).Column_End)).Select
58+
59
        For i = 1 To UBound(x, 1) - 1: intermediate_consumption_expenses = intermediate_consumption_expenses + x(i, j): Next
60-
    
60+
61-
    Range(Cells(Parts_coordinate(1).Row_Start, Parts_coordinate(1).Column_Start - 1), _
61+
62
    gdp_3rd_method = all_consumers_expenses - intermediate_consumption_expenses + import
63
    ReDim production_expenses_matrix(1 To UBound(x, 1), 1 To UBound(x, 1))
64
    ReDim base(1 To 1, 1 To UBound(x, 1))
65-
    
65+
66-
    Range(Cells(Parts_coordinate(2).Row_Start - 2, Parts_coordinate(2).Column_Start), _
66+
67
    ReDim final_consumption_matrix(1 To UBound(x, 1), 1 To UBound(y, 2) + 1)
68
    ReDim production_final_consumption(1 To UBound(x, 1) + 2, 1 To 4)
69-
69+
70-
'Расчет ВВП тремя способами
70+
71-
    'ВВП по расходам
71+
72
    For k = 1 To UBound(y, 2)
73
        For i = 1 To UBound(y, 1)
74
            final_consumption_matrix(i, k) = y(i, k) / gdp_expenses
75-
    'ВВП по доходам
75+
76
        Next i
77
    Next k
78
    base(1, UBound(x, 1)) = 1
79-
'?? 'ВВП по методу: ВВП=совокупные затраты покупателей на покупку продуктов - промежуточное потребление + импорт
79+
80-
    ''Cовокупные затраты покупателей на покупку продуктов (Итого использовано в ценах покупателей)
80+
81
        For i = 1 To UBound(x, 1):
82-
    For p = 1 To UBound(z, 2): all_consumers_expenses = all_consumers_expenses + z(1, p): Next  'чистые налоги на продукты
82+
83-
    ''Расходы на промежуточное потребление
83+
84
            production_expenses_matrix(i, UBound(x, 1)) = final_consumption_matrix(i, UBound(y, 2) + 1)
85
        Next i
86
    Next j
87-
    ''Совокупный импорт
87+
88
    production_final_consumption(1, 3) = "Экспорт"
89-
    
89+
90
    production_final_consumption(UBound(x, 1) + 2, 1) = "Всего"
91-
91+
92-
'Расчет всех матриц затрат и потребления (Таб.2-Таб.4)
92+
93
            production_final_consumption(i + 1, 2) = production_final_consumption(i + 1, 2) + final_consumption_matrix(i, k)
94-
    ReDim base(1 To 1, 1 To UBound(x, 1)) 'Костыль в размерности, но лень переделывать print_data_massive
94+
95
        production_final_consumption(i + 1, 1) = Resource_Names(i, 1)
96
        production_final_consumption(i + 1, 3) = final_consumption_matrix(i, UBound(y, 2) - 1)
97
        production_final_consumption(i + 1, 4) = final_consumption_matrix(i, UBound(y, 2))
98
        production_final_consumption(UBound(x, 1) + 2, 2) = production_final_consumption(UBound(x, 1) + 2, 2) + production_final_consumption(i + 1, 2)
99-
    'Расчет чистого дохода
99+
        production_final_consumption(UBound(x, 1) + 2, 3) = production_final_consumption(UBound(x, 1) + 2, 3) + production_final_consumption(i + 1, 3)
100
        production_final_consumption(UBound(x, 1) + 2, 4) = production_final_consumption(UBound(x, 1) + 2, 4) + production_final_consumption(i + 1, 4)
101
    Next i
102
ThisWorkbook.Sheets("Нейман2").Activate
103-
    'Расчет матрицы коэффициентов затрат на конечное потребление
103+
104
    Cells(3, 3) = "Таб.1"
105
    Cells(3, 3).Select: Cell_Color
106-
            'Матрица коэффициентов затрат на конечное потребление по всем отраслям
106+
107
    Cells(3, 5) = "Число потребителей"
108-
            'Вектор коэффициентов затрат на конечное потребление по "всего конечное потребление"
108+
109
    Cells(4, 5) = 1
110
    Cells(2, 8) = "Расходы на потребление ВВП1 =": Cells(2, 11) = gdp_expenses
111
    Cells(3, 8) = "Доходы населения ВВП2= ": Cells(3, 11) = gdp_income
112-
    'Расчет базы
112+
113
    Cells(5, 8) = "Итого использовано в ценах покупателей":
114
    Cells(6, 8) = all_consumers_expenses
115-
    'Расчет матрицы коэффициентов затрат
115+
116-
        'Из модели МОБ следует, что UBound(x,1)=UBound(y,1)!
116+
117
    Cells(5, 10) = "Импорт"
118
    Cells(6, 10) = import
119-
            'Расчет матрицы по всем отраслям
119+
120
    Cells(9, 2).Select: Cell_Color
121-
            'Расчет вектора "Денежные затраты"
121+
122
    Cells(11, 2) = "Таб.2"
123-
            'Расчет вектора "Потребление"
123+
124
    Call print_data_massive(10, 3, Process_Names)
125
    Cells(10, 3 + UBound(Process_Names, 2)) = "Потребление"
126
    Cells(11, 3 + UBound(Process_Names, 2)) = UBound(x, 1)
127-
    'Расчет конечного потребления продукции отраслей
127+
128
    Call print_data_massive(12, 3, production_expenses_matrix):  Number_Format_Three_decimal_places
129
    Cells(11, 30) = "Таб.3"
130
    Cells(11, 30).Select: Cell_Color
131
    Call print_data_massive(12, 31, final_consumption_matrix): Number_Format_Three_decimal_places
132
    Cells(10, 30 + UBound(final_consumption_matrix, 2)) = "Всего конечное потребление"
133-
        'Расчет внутреннего потребления
133+
134
    Call print_data_massive(10, 31, Consumers_Names)
135
    Cells(10, 45) = "Табл. 4  Конечное потребление продукции отраслей  (доли ВВП)"
136
    Cells(10, 45).Select: Cell_Color
137-
        'Присвоение названий отраслей из Resource_Names
137+
138
End Sub
139-
        'Копирование данных об экспорте из final_consumption_matrix
139+
140
Range(Cells(row, column), Cells(row + UBound(print_massive, 1) - LBound(print_massive, 1), _
141-
        'Копирование данных об импорте из final_consumption_matrix
141+
142
Selection.Value = print_massive
143-
        'Расчет строки "Всего"
143+
144-
        production_final_consumption(UBound(x, 1) + 2, 2) = production_final_consumption(UBound(x, 1) + 2, 2) _
144+
145-
        + production_final_consumption(i + 1, 2)
145+
146-
        production_final_consumption(UBound(x, 1) + 2, 3) = production_final_consumption(UBound(x, 1) + 2, 3) _
146+
147-
        + production_final_consumption(i + 1, 3)
147+
148-
        production_final_consumption(UBound(x, 1) + 2, 4) = production_final_consumption(UBound(x, 1) + 2, 4) _
148+
149-
        + production_final_consumption(i + 1, 4)
149+
150
    ActiveWindow.LargeScroll Down:=-2
151-
151+
152-
'Вывод полученных расчетов на лист "Нейман"
152+
153
    With Selection.Interior
154
        .ColorIndex = 8
155-
    'Вывод "Таб.1"
155+
156
End Sub