Страницы: 1
RSS
Тип данных - диапазон ячеек excel
 
Здрасте.  
 
Помогите разобраться, напр. в колонке 1 и 2 - по 50 заполненных ячеек (строк) с разными данными  
при  
activesheet.usedrange.columns(1).value=activesheet.usedrange.columns(2).value  
копируется соответсвенно из 2 в 1 колонку.  
 
вопрос - как - не просто скопировать, а например умножить на два сначало?  
что типа activesheet.usedrange.columns(1).value=activesheet.usedrange.columns(2).value*2 ???  
 
выдает ошибку tipe mismatch ! не понятно какой тип данных используется в работающем примере  
 
альтернативы такие как - циклы по всем ячейкам или другие способы (напр. внести формулу, а потом вставить значение) не нужны !! - необходимо понять как сразу занести в указанных диапазон - другой диапазон - умноженный на 2 соответсвенно по каждой ячейке!
 
[a1:a50]=[b1:b50*2]
Я сам - дурнее всякого примера! ...
 
прежде чем задавать вопросы, почитайте это:  
http://www.planetaexcel.ru/forum.php?thread_id=27585
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Сань, ну ты уж совсем:-)  
>> прежде чем задавать вопросы, почитайте это:  
Это всем надо? Откуда знать человеку, что "прежде чем задавать вопросы..."?
Я сам - дурнее всякого примера! ...
 
Сергей, имелось в виду: вопросы, возникшие после твоего поста.  
 
ибо у автора нет фиксированного диапазона для того, чтобы написать что-то типа  
[a1:a50]=[b1:b50*2]
у него есть usedrange  
а если "по аналогии" написать  
[usedrange.column(1)]=[usedrange.column(2)*2]
то результат может огорчить  
и вызвать вопросы  
ответы на которые уже есть  
по приведенной ссылке  
 
:)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Так видишь, даже я не понял, что имелось в виду:-) Подумал, ты на первый пост автора отвечаешь.
Я сам - дурнее всякого примера! ...
 
mea maxima culpa :)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
спасибо
 
Рребят помогите разобраться, все работает, но при включенном стиле A1B1?  
при переключении в стиль r1c1 задача ActiveSheet.UsedRange.Columns(1).Value = Evaluate(ActiveSheet.UsedRange.Columns(2).Address + "*2")  
 
пробовал параметром .Address(,,xla1) но бесполезно
 
Проблеммы так каковой нет, могу в начале задать переключение с r1c1 на a1b1, но хотелось бы разобраться и понять - может есть еще какой способ!
 
> пробовал параметром .Address(,,xla1) но бесполезно  
 
Sub bb()  
With ActiveSheet.UsedRange  
   .Columns(1).Value = Evaluate(.Columns(2).Address(, , Application.ReferenceStyle) & "*2")  
End With  
End Sub
 
спасибочки, опять решение под носом а смотрю вверх))
 
Возникла проблемма в суммировании большого кол-ва столбцов, как прописать    
.Columns(58).Value = "=SUM(RC[1]:RC[15])"
через evaluate() без перечисления (.Columns(58).address+"+"+.Columns(58).address+...)  
а просто например с application.sum() ???  
 
не работает!
 
рребят? можно суммировать в evaluate через функцию суммирования?
 
Вы хотите в каждой ячейке столбца получить сумму последующих 15 ячеек?  
Наверно, можно и одной формулой, но она будет громоздкой.  
Проще вставить в каждую ячейки формулу, а потом заменить на значения:  
 
with [A1:A10]
   .formular1c1="=SUM(RC[1]:RC[15])
   .value=.value  
end with
 
эх..  
Так и подозревал что к этому все прийдет))  
 
Хотел узнать - есть ли какой другой способ кроме вставки формул, она же как то работает программно??!!
 
Смотрите - тот же пример через Evaluate:  
 
With [A1:A10]
   Dim a$: a = .Offset(, 1).Resize(, 15).Address(, , Application.ReferenceStyle)  
   .Value = Evaluate("INDEX(SUBTOTAL(9,OFFSET(" & a & ",ROW(" & a & ")-" & .Row & ",,1)),)")  
End With  
 
С помощью формулы в ячейке - очень просто, я написал код в форум без отладки и уверен, что он рабочий. А тут пришлось довольно долго править формулу массива на листе. И при переносе в код обернуть в ИНДЕКС, иначе не работала.
 
спасибо  
очень интересно, хоть и сложновато по началу, в принципе по времени выполнения одно и тоже практически
Страницы: 1
Читают тему
Наверх