Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: range: расчет в нескольких ячейках  (Прочитано 10258 раз)
0 Пользователей и 1 Гость смотрят эту тему.
monrus
Опытный

ru
Offline Offline

« : 10-09-2010 04:23 » 

Всем привет.

есть такой макрос:
Код:
Dim oRange
Set oRange = Selection

If oRange.Offset(0, -1).Value = 1 Then
    oRange.Value = 1
Else
    oRange.Value = 0
End If

End Sub

При выделении одной ячейки работает, если несколько ячеек - то нет.
Как нужно изменить макрос чтобы он работал при выделении нескольких ячеек?
Записан
baldr
Команда клуба

cy
Offline Offline
Пол: Мужской
Дорогие россияне


WWW
« Ответ #1 : 12-09-2010 17:32 » 

monrus, как я понял, проблема в том, что ты пытаешься сравнить значение диапазона (Range) с фиксированной величиной.
В случае одной ячейки умный VBA автоматически приводит типы, но при выборе нескольких ячеек - какое именно значение ты имеешь в виду? В первой? Во второй? В сумме? Вот VBA тоже не понимает.
Объясни что ты хочешь получить этим макросом, а то вдруг код в корне неправильный...
Вообще, если ты хочешь обработать значение группы ячеек - нужно сначала его посчитать.. Например, сумму или объединение строк.
Записан

Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
monrus
Опытный

ru
Offline Offline

« Ответ #2 : 13-09-2010 14:31 » 

В общем есть таблица. По строке которой надо проверить значение в одной ячейке, и в зависимости от значения сделать какие-то манипуляции и результат вывести в этой же строке, но в другой ячейке.
И так с каждой строкой.
Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #3 : 14-09-2010 04:32 » 

добавьте в свой код порход по все строкам и/или ячейкам
Код:
For each ... in oRange. и так далее
и свой If внутри этого прохода
 

P.S: не забывайте явно объявлять переменные. всегда поможет и избавит от непредвиденных ошибок
« Последнее редактирование: 14-09-2010 04:39 от HandKot » Записан

I Have Nine Lives You Have One Only
THINK!
baldr
Команда клуба

cy
Offline Offline
Пол: Мужской
Дорогие россияне


WWW
« Ответ #4 : 14-09-2010 05:28 » 

monrus, а формула не подойдет? Если простое преобразование значений, то это можно сделать и без макросов вообще...
Записан

Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
monrus
Опытный

ru
Offline Offline

« Ответ #5 : 14-09-2010 13:18 » 

ДА спасибо пришлось делать через For each. Просто думал есть проще варианты.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines