Новости:

Из правил форума: Тема должна отражать суть вопроса, топики типа "help please" будут удаляться!

Главное меню

присваивание:Range(i)=массив

Автор Nevada, 17.04.2012, 16:21

« назад - далее »

Nevada

В  VBA, работая с объектами excel : range, cells и тд, столкнулся с проблемой, не получается безошибочно присвоить область range массиву, для дальнейший операции с совместным участием как областей range, так и массивов находящихся в оперативной памяти.

Прикладываю пример, в нем необходимо данные области rng2, которые хранятся в ячейках листа, держать в оперативной памяти, и во втором действии  делать умножения используя данные с листа excel и данных хранящихся в оперативной памяти


a = Range("h1")
   Dim rng As Range, rng2 As Range, rng3 As Range, rng4 As Range
    n = a + 1
    m = a
   Range(Cells(6, 2), Cells(n + 5, m + 1)).Activate
   Set rng = Range(Cells(6, 2), Cells(n + 6, m))
   Set rng2 = Range(Cells(n + 10, 2), Cells(n + 10, m + 1))
    Dim p As Double, k As Double, l As Double
    p = 0
    For j = 1 To m
        For i = 1 To n
            p = p - rng.Cells(i, j)
            p = Abs(p)
        Next i
        rng2.Cells(j) = p
        p = 0
    Next j
Set rng4 = Range(Cells(n + 11, 2), Cells(n + 11, m + 1))
Set rng3 = Range(Cells(n + 9, 2), Cells(n + 9, m + 1))
    p = 0
For j = 1 To m
p = rng2.Cells(j) * rng3.Cells(j)
rng4.Cells(j) = p
Next j

Oleg X

так что куда?

название темы
присваивание:Range(i)=массив   

а в тексте
... не получается безошибочно присвоить область range массиву ...

засунуть range в массив можно просто
mas = rng2
NULL