Вывод решения функции в файле Excel

Ответить
AlenKaа
Сообщения: 4
Зарегистрирован: 11 мар 2009, 09:12

24 мар 2009, 09:23

:confused: Добрый день!
Помогите, пожалуйста, решить задачку! :confused:
Это задача по теплопроводности с граничными условиями.
У нас имеется длинная квадратная труба, по которой течет горячая жидкость. Наружный размер трубы равен 10 дюймам, внутренни - 4 дюйма.
Мне необходимо вывести все числа, полученные в результате решения функции
u(i, j) = Str(1 / 4 * (Val(u(i, (j - 1))) + Val(u((i - 1), j)) + _
Val(u(i, (j + 1))) + Val(u((i + 1), j))))
в виде рисунка в таблице, то есть как печать карты изотерм в сечении трубы, но не на пользовательской форме, а в таблице.
Заранее огромное спасибо за помощь!
Аватара пользователя
Naeel Maqsudov
Сообщения: 2551
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

24 мар 2009, 09:43

Так и не понял, требуется
а) "Вывод решения функции в файле" и сделать это надо на VBA в Excel
б) Надо сделать решение на чем-то (не указано на чем), но вывод "в файле Excel"
AlenKaа
Сообщения: 4
Зарегистрирован: 11 мар 2009, 09:12

24 мар 2009, 12:38

Добрый день!
Вывод решения необходимо произвести в программе VBA.
Данная программа уже составлена с применением пользовательской формы. Но мне необходимо показать рисунок, который Вы увидите, открыв пользовательскую форму, непосредственно в самом файле Excel. После вывода значений в таблице ячейки с одинаковыми значениями должны быть закрашены одним цветом, то есть должны получиться изотермы. Код программы во вложенном файле.
спасибо.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Naeel Maqsudov
Сообщения: 2551
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

24 мар 2009, 13:59

Код: Выделить всё

For i = 0 To 60
  For j = 0 To 60
    Cells(61-i,j+1).Value + u_print(i, j)
  Next j
Next i
А вот с раскраской не понял. Надо сначала посмотреть, а рисовать форму нет времени. Вы бы из VBA-проекта экпортировали бы модуль формы целиком и приложили бы уж в ZIPе.
AlenKaа
Сообщения: 4
Зарегистрирован: 11 мар 2009, 09:12

24 мар 2009, 14:58

Спасибо огромное за помощь! Попытаюсь вывести данные с помощью Вашего кода. :D
По поводу раскраски: мне необходимо раскрасить ячейки, значения которых соответствуют заданным интервалам, в различные цвета. В данном случае А - синий, В - фиолетовый, С - голубой, D - серый, E/N - желтый, О - оранжевый, Р - розовый,Q - коричневый, R - красный.
Вот часть кода из вложенного файла, в которой необходимо поменять буквы на цвета:

'замена чисел на обозначения в другой матрице
For j = 0 To 60
For i = 0 To 60
If u(j, i) >= 0 And u(j, i) <= 11.7 Then
u_print(j, i) = "A"
ElseIf ((u(j, i) >= 23.6) And (u(j, i) <= 35.3)) Then
u_print(j, i) = "B"
ElseIf ((u(j, i) >= 47.1) And (u(j, i) <= 58.7)) Then
u_print(j, i) = "C"
ElseIf ((u(j, i) >= 70.6) And (u(j, i) <= 82.3)) Then
u_print(j, i) = "D"
ElseIf ((u(j, i) >= 94.2) And (u(j, i) <= 105.8)) Then
u_print(j, i) = "E" '"N"
ElseIf ((u(j, i) >= 117.9) And (u(j, i) <= 129.4)) Then
u_print(j, i) = "O"
ElseIf ((u(j, i) >= 141.4) And (u(j, i) <= 152.9)) Then
u_print(j, i) = "P"
ElseIf ((u(j, i) >= 164.8) And (u(j, i) <= 176.3)) Then
u_print(j, i) = "Q"
ElseIf ((u(j, i) >= 188.3) And (u(j, i) <= 200)) Then
u_print(j, i) = "R"
Else
u_print(j, i) = " "
End If
Next i
Next j
Еще раз огромное спасибо!
У вас нет необходимых прав для просмотра вложений в этом сообщении.
AlenKaа
Сообщения: 4
Зарегистрирован: 11 мар 2009, 09:12

24 мар 2009, 15:45

Что-то у меня не проходит строчка
Cells(61 - I, J + 1).Value + u_print(I, J)
После ввода программа автоматически превращает ее в строчку:
Cells(61 - I, J + 1).Value u_print(I, J) и не пропускает... :(
В чем дело, никак не пойму...

---------- Post added at 18:45 ---------- Previous post was at 18:13 ----------

Оказывается, просто нужно было изменить "+" на равно.
Cells(61 - I, J + 1).Value = u(I, J)
У меня вывелись значения в файле Excel. Спасибо большущее! :o
Ответить