Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Деление диапазонов - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Деление диапазонов (Макросы/Sub)
Деление диапазонов
krest Дата: Четверг, 26.10.2017, 15:24 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 60% ±

Excel 2013
Подскажите пожалуйста, как правильно делить объектные переменные.
[vba]
Код
Sub DDR()
Dim Rng, Rng1, Rng2 As Range

Sheets("Лист1").Select
    
    Set Rng = Cells.Find(What:="оперативная память", LookIn:=xlValues)
    Set Rng1 = Rng.Offset(0, 1)
    Set Rng2 = Rng1 / Range("K2")
   
    Rng2.Copy

    Range("K3").Select
    ActiveSheet.Paste

End Sub
[/vba]
К сообщению приложен файл: test.xlsm(15Kb)
 
Ответить
СообщениеПодскажите пожалуйста, как правильно делить объектные переменные.
[vba]
Код
Sub DDR()
Dim Rng, Rng1, Rng2 As Range

Sheets("Лист1").Select
    
    Set Rng = Cells.Find(What:="оперативная память", LookIn:=xlValues)
    Set Rng1 = Rng.Offset(0, 1)
    Set Rng2 = Rng1 / Range("K2")
   
    Rng2.Copy

    Range("K3").Select
    ActiveSheet.Paste

End Sub
[/vba]

Автор - krest
Дата добавления - 26.10.2017 в 15:24
sboy Дата: Четверг, 26.10.2017, 15:34 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1103
Репутация: 276 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
Диапазоны делить нельзя, т.к. это объекты
делить нужно значения
[vba]
Код
Sub DDR()
Dim Rng, Rng1, Rng2 As Range 'не верное объявление (если хотели все 3 переменные as range)
Sheets("Лист1").Select
    Set Rng = Cells.Find(What:="оперативная память", LookIn:=xlValues, lookat:=xlPart)
    'Set Rng1 = Rng.Offset(0, 1)
    Range("K3").Value = Rng.Offset(0, 1).Value / Range("K2").Value
    'Rng2.Copy
    'Range("K3").Select
    'ActiveSheet.Paste
End Sub
[/vba]
К сообщению приложен файл: test-1-.xlsm(15Kb)
 
Ответить
СообщениеДобрый день.
Диапазоны делить нельзя, т.к. это объекты
делить нужно значения
[vba]
Код
Sub DDR()
Dim Rng, Rng1, Rng2 As Range 'не верное объявление (если хотели все 3 переменные as range)
Sheets("Лист1").Select
    Set Rng = Cells.Find(What:="оперативная память", LookIn:=xlValues, lookat:=xlPart)
    'Set Rng1 = Rng.Offset(0, 1)
    Range("K3").Value = Rng.Offset(0, 1).Value / Range("K2").Value
    'Rng2.Copy
    'Range("K3").Select
    'ActiveSheet.Paste
End Sub
[/vba]

Автор - sboy
Дата добавления - 26.10.2017 в 15:34
krest Дата: Четверг, 26.10.2017, 15:39 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 60% ±

Excel 2013
sboy, Спасибо большое!
 
Ответить
Сообщениеsboy, Спасибо большое!

Автор - krest
Дата добавления - 26.10.2017 в 15:39
sboy Дата: Четверг, 26.10.2017, 15:41 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 1103
Репутация: 276 ±
Замечаний: 0% ±

Excel 2010
Вообще .Value это значение по умолчанию и такая запись тоже будет работать
[vba]
Код
Range("K3") = Rng.Offset(0, 1) / Range("K2")
[/vba]
сейчас поищу ссылку на эту тему.
У Вас проблема была в другом Rng был Nothing.
 
Ответить
СообщениеВообще .Value это значение по умолчанию и такая запись тоже будет работать
[vba]
Код
Range("K3") = Rng.Offset(0, 1) / Range("K2")
[/vba]
сейчас поищу ссылку на эту тему.
У Вас проблема была в другом Rng был Nothing.

Автор - sboy
Дата добавления - 26.10.2017 в 15:41
ВладимирG Дата: Четверг, 26.10.2017, 15:43 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 123
Репутация: 18 ±
Замечаний: 0% ±

2007
[vba]
Код
Sub DDR()
Dim i&, lstr&, k&
lstr = Cells(Rows.Count, 1).End(xlUp).Row
k = [K2]
For i = 3 To lstr
    If Cells(i, 3) Like "Оперативная память*" Then
        Cells(i, 11) = Cells(i, 7) / k
    End If
Next
End Sub
[/vba]


Сообщение отредактировал ВладимирG - Четверг, 26.10.2017, 15:44
 
Ответить
Сообщение[vba]
Код
Sub DDR()
Dim i&, lstr&, k&
lstr = Cells(Rows.Count, 1).End(xlUp).Row
k = [K2]
For i = 3 To lstr
    If Cells(i, 3) Like "Оперативная память*" Then
        Cells(i, 11) = Cells(i, 7) / k
    End If
Next
End Sub
[/vba]

Автор - ВладимирG
Дата добавления - 26.10.2017 в 15:43
sboy Дата: Четверг, 26.10.2017, 15:46 | Сообщение № 6
Группа: Проверенные
Ранг: Старожил
Сообщений: 1103
Репутация: 276 ±
Замечаний: 0% ±

Excel 2010
Вот здесь уважаемый Gustav хорошо объяснил
 
Ответить
СообщениеВот здесь уважаемый Gustav хорошо объяснил

Автор - sboy
Дата добавления - 26.10.2017 в 15:46
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Деление диапазонов (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2017 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!