Страницы: 1
RSS
Как работать с данными Excel в VBA?
 
Здравствуйте! Помогите решить задачу: нужно использовать в расчетах в VBA данные из таблицы EXcel, при чем нужно использовать значение столбца, строки и значение в ячейке на их персечении. В таблице 8 столбцов, 6 строк.
 
Я просто не знаю как сослаться на данные из Excel: я реально туплю, а тут мне эту задачу дали. Как взять значения из таблицы, чтобы можно было делать расчет. С расчетом проблем нет, прогу написал, но данные добыть не могу.
 
cells(номер строки,номер столбца)  
 
а вообще выкладывайте пример
 
читайте правила  
(часть из них - в моей подписи)
 
У меня есть таблица в Excel - прилагаю. Это распределение температуры на поверхность фрагмента образца. Нужно рассчитать измение температуры со временем. Мне нужно учесть в расчетах расстояние координаты ячейки (значения длины и ширины)и темературу на их пересечении. Я не могу взять это из таблицы и вставить в прогу.
 
Вы правду думаете что стало понятней?  
 
Приложите пример с листами "есть вот" и "хочу так"
 
Да, я думал что так понятней. Мне нужно обратиться к каждой ячейке таблицы и к значениям столбца и строки - координатам ячейки. То есть взять ячейку например (26;6;27), что означает ширина 26, длина 6, температура 27, и учесть в расчетах эту самую ширину, длину и температуру. Мне надо вставить в формулы расчета температур и ширину и длину и температуру из данной таблицы. И получить на выходе тоже (ширину,длину,температуру).
 
{quote}{login=Andrey2011}{date=22.02.2010 08:24}{thema=}{post}То есть взять ячейку например (26;6;27), что означает ширина 26, длина 6, температура 27, и учесть в расчетах эту самую ширину, длину и температуру. {/post}{/quote}  
Для данной ячейки:  
Cells(5, 4).Value  
где: 5 - номер строки, 4 - номер столбца, Value - значение.
 
=ИНДЕКС(A1:I8;3;8)  
 
3 - номер строки  
8 - номер столбца
 
Спасибо за ответы! А можно мне нужно последовательно взять каждую ячейку с ее координатами и посчитать разницу значений со всеми остальными ячейками и вывести эту разницу с координатами ячеек?
 
Перебрать все ячейки можно циклом, предварительно указав диапазон. А вот это -    
{quote}{login=}{date=22.02.2010 10:17}{thema=}{post}посчитать разницу значений со всеми остальными ячейками и вывести эту разницу с координатами ячеек?{/post}{/quote}  
трудно понять: КУДА вывести, и ЧТО такое "разница значений со всеми остальными ячейками"
 
Подскажите пожалуйста как указать диапазон и при этом еще использовать в формулах значения координат ячеек. А вывожу я в файл csv:  
Print #1 "ширина=", f, "длина=", d, "расстояние", l, "температура", T  
Помимо температуры я в этой проге расчитываю еще и расстояние между ячейками образца и поэтому мне нужно в расчеты вставлять значения координат - ширины и длины.
 
Вы всё время пишете про какую-то свою программу. Откуда нам знать - что это за программа и что она делает. Вот этот код в заданном диапазоне пересморит все ячейки.  
===  
Sub Test()  
Dim Rng As Range  
Dim iCell As Range  
Set Rng = Range(Cells(3, 2), Cells(8, 9))  
   For Each iCell In Rng  
   Debug.Print iCell.Value  
   'Здесь Ваша обработка  
   Next  
End Sub
 
Моя программа - это просто алгоритм расчета температуры и там все в порядке с формулами распространения тепла в данном образце породы. Но в эти формулы мне надо было подставить данные из таблицы Excel и тут возникла загвоздка. Пока я рассчитывал обмен тепла между двумя точками, я вручную вводил их координаты и значения температур, но когда мне дали набор, все их вручную не введешь - это бред.  
Set Rng = Range(Cells(3, 2), Cells(8, 9))  
For Each iCell In Rng  
Debug.Print iCell.Value  
Здесь программа перебирает значения в таблице насколько я понял, а как мне значения длины и ширины учесть?  
За ответы спасибо.
 
Sub Test()  
Dim x  
Dim y  
Dim z  
Dim Rng As Range  
Dim iCell As Range  
Set Rng = Range(Cells(3, 2), Cells(8, 9))  
   For Each iCell In Rng  
   x = iCell.Value 'Значение ячейки  
   y = Cells(iCell.Row, 1) 'Ширина  
   z = Cells(2, iCell.Column) 'Длина  
   Debug.Print x  
   Debug.Print y  
   Debug.Print z  
   'Здесь Ваша обработка  
   Next  
End Sub
 
Спасибо!!! Все понятно! Большое спасибочки!!!
Страницы: 1
Читают тему
Наверх