Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
VBA вырезать слой из массива
 
Дан заполненный двумерный массив.

Код
Dim myArr(1 to 2, 1 to 5)

Мне это представляется как два массива с размером (1 to 5) в каждом.
Так вот, можно ли вырезать из этого массива целый слой в новую переменную?
Хочется без цикла, каким-нибудь нативным способов.
Чтобы получилось так:

Код
Dim NewArr(1 to 5)

CutDimenstionToArray myArr,2,NewArr    'произвольная функция, но думаю суть понятна. Из массива вырезается второй слой

Debug.print myArr(2,1) = NewArr(1) 'True
Debug.print myArr(2,2) = NewArr(3) 'True
Debug.print myArr(2,3) = NewArr(3) 'True
Debug.print myArr(2,4) = NewArr(4) 'True
Debug.print myArr(2,5) = NewArr(5) 'True
Вставка результата вычисления формулы средствами VBA
 
Мои мысли, Слэн имеет ввиду что
Код
dim cl as range

For each cl in range Range("I69:I80")


изменить на
Код
dim cl as range
dim [B]Rng[/B] as Range("I69:I80")
For each cl in range [B]Rng[/B]


Но повторюсь, это мои домысли.
И если я прав, то алгоритм не меняется, а просто ускоряется.
Вставка результата вычисления формулы средствами VBA
 
Как я понял, ваша формула = адрес на ячейку другой книги
Код
dim cl as range

For each cl in range Range("I69:I80")
   cl = %Ваша формула% 'тут в ячейку вставится формула, производится расчёт и показывается результат
   cl.copy
   cl.pastespecial xlPasteAsValue 'преобразование формулы в значения
next cl 'и так с каждой ячейкой
VBA Можно ли сохранить переменную после закрытия файла?
 
Цитата

Записывать её на скрытый лист перед закрытием.
При открытии считывать.
Либо записать в массив строк все пути\названия файлов прямо в коде, если список не меняется.

Тут ситуация, что если возможность есть, то ее можно будет ещё где-нибудь использовать.
Была бы этакая динамика, гибкость в локация и маске поиска.
Изменено: Денис Козлов - 08.11.2013 17:05:32
VBA Можно ли сохранить переменную после закрытия файла?
 
Ситуация такая, что вначале многих частовызываемых макросов около 15 минут создается коллекция файлов, с которыми буде дальнейшая работа. Коллекция создается каждый раз одна и так же.

Есть ли способ как-то сохранить коллекцию для последующей работы с ней при следующем открытии файла, т.е. чтобы она не очищалась после закрытия файла?
Автоматичское обновление данных при изменении источника
 
F9 результата не даёт - параметры вычислений стоит "Автоматически"
@Z разве тут может быть проблема если при определенных условиях (просто открыть книгу-источник из папки) цифры обновляются?
Автоматичское обновление данных при изменении источника
 
Пробовал - не цифры не обновляются.
Автоматичское обновление данных при изменении источника
 
Доброе время суток!
Такая проблема: открыты две книги: книга- источник, и конечная книга.
При изменении данных в книге-источнике, цифры в конечной книге не обновляются.

Но. Такая ситуация получается только если книгу-источник открыть через ссылку в конечной книге.
Если книгу-источник открыть из папки, такой проблемы не наблюдается.

Добавлю, что обе книги находятся на сетевом диске, в одной папке.
Макрос для замены части формулы
 
formulalocal помогла!

Что в итоге получил

Код
Sub Replace()

Dim g As Integer, x As Integer

For x = 1 To 12
    g = 32
    
    Worksheets(x).Select
        
    Do While Worksheets(x).Cells(g, 1) <> ""
    Cells(g, 8).Select

ActiveCell.FormulaLocal = Replace(ActiveCell.FormulaLocal, "J" & (g) & "=0;I" & (g) & "=0", "k" & (g) & "=0;l" & (g) & "=0")

    g = g + 1
             
    Loop
   
Next
    
End Sub


Спасибо Большое!
Вопрос закрыт.
Макрос для замены части формулы
 
Здравствуйте!

Такая проблема.
Есть 10 файлов, с 12 листами в каждом.
В каждой ячейке столобца(допустим "H35" ;)  нужно заменить часть формулы.

Например: =ЕСЛИ(МИН(прямая ссылка на ячейку др файла;J35=0;I35=0);"Указать";G35-$I35-$J35-$K35-$L35)
Заменить на =ЕСЛИ(МИН(прямая ссылка на ячейку др файла;K35=0;L35=0);"Указать";G35-$I35-$J35-$K35-$L35)
И таких 200 формул на листе.

Что пробовал и не работает. (Просто не заменяет)

sub zamena()
Range("H35" ;)  .Formula = Replace(Range("H35"  ;)  .Formula, "J35=0;I33=0", "K35=0;L35=0"  ;)  
End sub

и

sun zamena()
Range("H35" ;)  .Formula.Replace What:="J35=0;I33=0", Replacement:="K35=0;L35=0", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End Sub
Изменено: evolit - 13.09.2013 10:41:53
Страницы: 1
Наверх