Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Оптимизация проектных решений оснований и фундаментов с помощью Microsoft Excel и Visual Basic for Applications (примеры расчета). Методические указан
.pdf
Рис. 17. Шаблон листа Круглый.
Код главной процедуры Main приложения выглядит следующим
образом
Sub Main()
InputsForm.Show
IshDannForm.Show
If FormaPodosh = 1 Then
RazmerFundForm1.Show
S = Dlina / Shirina
With Worksheets("Таблица1")
.Visible = True
.Activate
End With
With Range("B7")
Range(.Offset(1, 0), .Offset(1, 6).End(xlDown)).ClearContents
Range(.Offset(2, 7), .Offset(2, 7).End(xlDown)).ClearContents
End With
Call Raschet1
ElseIf FormaPodosh = 2 Then
RazmerFundForm2.Show
With Worksheets("Таблица2")
.Visible = True
.Activate
End With
Call Ochistka
Call Raschet2
ElseIf FormaPodosh = 3 Then
RazmerFundForm2.Show
With Worksheets("Таблица3")
.Visible = True
.Activate
41

End With
Call Ochistka
Call Raschet2
ElseIf FormaPodosh = 4 Then
RazmerFundForm2.Show
With Worksheets("Таблица4")
.Visible = True
.Activate
End With
Call Ochistka
Call Raschet2
End If
End Sub
В этой процедуре использована конструкция With для активизации
рабочих листов. Причем открывается тот лист, к которому обращается
программа, а остальные листы остаются скрытыми.
В модуле включены три вспомогательные процедуры: Raschet1,
Raschet2 и Ochistka.
Sub Raschet1()
Range("I7") = Davlenie: Range("C7") = Shag: Range("B7") = 0
Range("D7") = Shirina: Range("E7") = S: Range("F7") = Range("I7")
With Range("B7")
.DataSeries Rowcol:=xlColumns, Step:=1, Stop:=Glubina / Shag
.Offset(1, 1).Copy Range(.Offset(2, 1), .Offset(Glubina / Shag, 1))
Range(.Offset(0, 5), .Offset(0, 6)).Copy Range(.Offset(1, 5), .Offset(Glubina /
Shag, 6))
Range(.Offset(1, 7), .Offset(1, 7)).Copy Range(.Offset(2, 7), .Offset(Glubina /
Shag, 7))
End With
End Sub
Sub Raschet2()
Range("H7") = Davlenie: Range("C7") = Shag: Range("B7") = 0
Range("D7") = Shirina: Range("E7") = Range("H7")
With Range("B7")
.DataSeries Rowcol:=xlColumns, Step:=1, Stop:=Glubina / Shag
.Offset(1, 1).Copy Range(.Offset(2, 1), .Offset(Glubina / Shag, 1))
Range(.Offset(0, 4), .Offset(0, 5)).Copy Range(.Offset(1, 4), .Offset(Glubina /
Shag, 5))
Range(.Offset(1, 6), .Offset(1, 6)).Copy Range(.Offset(2, 6), .Offset(Glubina /
Shag, 6))
End With
End Sub
Sub Ochistka()
With Range("B7")
Range(.Offset(1, 0), .Offset(1, 5).End(xlDown)).ClearContents
Range(.Offset(2, 6), .Offset(2, 6).End(xlDown)).ClearContents
42

End With
End Sub
Процедура Raschet1 вызывается главной процедурой Main в случае,
когда определяются напряжения по глубине для прямоугольной формы
подошвы фундамента. Сначала процедура при помощи Range вводит
значения исходных данных в соответствующие ячейки шаблона листа
«Прямоугольный», включая число 0 в ячейку В7. Затем столбец В,
начиная с ячейки В8, заполняется номерами уровней с помощью метода
DataSeries объекта Range. Заполнение ячеек завершается номером равным
отношению Glubina/Shag. Если это отношение будет отличным от целого
цисла, то расчет последней строчки на листе «Прямоугольный»
программа не выполнит. Оставшаяся часть таблицы заполняется в
результате копирования в ячейки соответствующих формул. Например,
строка
Range(.Offset(0, 5), .Offset(0, 6)).Copy Range(.Offset(1, 5),
.Offset(Glubina / Shag, 6))
копирует формулы, содержащие в ячейках G7 и H7, в ниже
расположенные ячейки до уровня, номер которого соответствует
значению соотношения Glubina/Shag.
Если определяются напряжения по глубине для квадратной,
ленточной или круглой формы подошвы фундамента, то главная
процедура Main вызывает процедуру Raschet2. Последующие вычисления
производятся также как и в процедуре Raschet1.
Процедура Ochistka предназначена для очистки старой таблицы,
которая была получена при выполнении предыдущих расчетов.
43

Рекомендуемая литература
СНиП 2.02.01-83*. Основания зданий и сооружений. – М.: ФГУП
ЦПП, 2006. – 48 с.
Гарбер, Г.З. Основы программирования на Visual Basic и VBA в
Excel 2007. – М.: СОЛОН-ПРЕСС, 2008. – 192 с.
Далматов, Б.И. Механика грунтов, основания и фундаменты
(включая специальный курс инженерной геологии) : учебник / Б.И.
Далматов. – СПб.: Лань, 2012. – 416 с.
Олбрайт, К. Моделирование с помощью Microsoft Excel и VBA:
разработка систем поддержки принятия решений.: пер. с англ. – М.:
Издательский дом «Вильямс», 2005. – 672 с.: ил. – Парал. тит. англ.
Основания, фундаменты и подземные сооружения / М.И. ГорбуновПосадов, В.А. Ильичев, В.И. Крутов и др.; под общ. ред. Е.А. Сорочана и
Ю.Г. Трофименкова. – М.: Стройиздат, 1985. – 480 с., ил. – (Справочник
проектировщика).
44
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
