IVANru писал(а):DATE,OPEN,HIGH,LOW,CLOSE,Percent,Vol 
Трейдун?  
 
Не знаю для чего Вам все это нужно...
Но более быстрым и продуктивным будет все-таки использование массивов.
Вот пример для Вашего первого варианта:
- Код: Выделить всё
 ' Это нужно засунуть в отдельный модуль.
Option Explicit
Public Sub HMaxLMin()
 Dim varBsArray As Variant ' это будет наш базовый массив
 Dim varRsltArray As Variant  ' а это - будущий массив для сохранения результата
 Dim intFstRow As Integer ' первая строка, раб-го диапазона с необходимыми данными
 Dim intLstRow As Integer ' последняя строка, раб. диапазона
 Dim intUnRow As Integer ' общее кол-во строк, не содержащих нужные данные*
 Dim n As Integer, m As Integer ' счетчики
' Переменные для работы с данными из базового массива:
 Dim H1 As Integer, H2 As Integer
 Dim L1 As Integer, L2 As Integer, O As Integer
' Вычисляем рабочий диапазон необходимых данных
' (вместо 1 и 0 нужно будет подставить свои значения):
 intFstRow = 1
 intUnRow = 0
 intLstRow = ActiveSheet.UsedRange.Rows.Count - intUnRow
' Объявляем количество строк в массиве с резалтами:
 ReDim varRsltArray(intLstRow - 2, 0)
' "Одним махом" заполняем базовый массив:
 varBsArray = Range(Cells(intFstRow, 2), Cells(intLstRow, 4)).Value
' Вычисляем, что нам нужно и заполняем второй массив резалтами,
' одновременно их форматируя:
 For n = 2 To UBound(varBsArray)
  O = varBsArray(n, 1)
  H1 = varBsArray(n - 1, 2)
  H2 = varBsArray(n, 2)
  L1 = varBsArray(n - 1, 3)
  L2 = varBsArray(n, 3)
  m = n - 2
  If (H2 > H1 And L2 > L1) Or (H2 > H1 And L2 < L1) Then
   varRsltArray(m, 0) = Format(((H2 - H1) / O) / 100, "#0.#0000000")
  ElseIf (H2 < H1 And L2 < L1) Or (H2 > H1 And L2 < L1) Then
   varRsltArray(m, 0) = Format(((L1 - L2) / O) / 100, "#0.#0000000")
  End If
 Next n
' Так же "одним махом", заполняем столбец Percent значениями:
With Range(Cells(intFstRow, 6), Cells(intLstRow - 1, 6))
 .Value = varRsltArray()
End With
Erase varBsArray, varRsltArray ' очищаем память
End Sub
* Это строки, находящиеся вне рабочего диапазона, в его начале или конце, либо и то и другое вместе. Например, таковой является строка: "DATE,OPEN,HIGH,LOW,CLOSE,Percent,Vol"
Вот вкратце и усе. (По идее, надо бы ишшо приткнуть какой-нить обработчик ашипок... Но это уже самостоятельно. 
 
)
P.S. Писал вчера.  
