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

Вход

Регистрация

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

 

= Мир MS Excel/Как задать несвязанные диапазоны в Range()? - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как задать несвязанные диапазоны в Range()? (Макросы/Sub)
Как задать несвязанные диапазоны в Range()?
китин Дата: Среда, 13.09.2017, 11:55 | Сообщение № 1
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4331
Репутация: 673 ±
Замечаний: 0% ±

Excel 2007;Excel 2010
Доброго всем времени !!!
Собственно вопрос в названии темы
[vba]
Код
Sheets("Лист1").Range(Cells(i, 9), Cells(i, 13), Cells(i, 18))
[/vba]
не катит
[vba]
Код
Sheets("Лист1").Range("I & i, M & i , R & i ")
[/vba]
не катит. варианты с различной постановкой кавычек тоже не прокатили. Какие вообще правила прописывания диапазонов в Range ?


Не судите строго:я пытаюсь научиться
ЯД 41001877306852/WM R249698041931; Z239672726538


Сообщение отредактировал китин - Среда, 13.09.2017, 12:14
 
Ответить
СообщениеДоброго всем времени !!!
Собственно вопрос в названии темы
[vba]
Код
Sheets("Лист1").Range(Cells(i, 9), Cells(i, 13), Cells(i, 18))
[/vba]
не катит
[vba]
Код
Sheets("Лист1").Range("I & i, M & i , R & i ")
[/vba]
не катит. варианты с различной постановкой кавычек тоже не прокатили. Какие вообще правила прописывания диапазонов в Range ?

Автор - китин
Дата добавления - 13.09.2017 в 11:55
Pelena Дата: Среда, 13.09.2017, 12:08 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11491
Репутация: 2555 ±
Замечаний: 0% ±

Excel 2010, 2016 & Mac Excel
Может, как-то так
[vba]
Код
Sheets("Лист1").Range("I" & i & ", M" & i &", R" & i )
[/vba]
То есть в скобках Range должно получиться "I1, M1, R1" (для i=1)
Конечная цель какая? Может, другой подход поискать?


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеМожет, как-то так
[vba]
Код
Sheets("Лист1").Range("I" & i & ", M" & i &", R" & i )
[/vba]
То есть в скобках Range должно получиться "I1, M1, R1" (для i=1)
Конечная цель какая? Может, другой подход поискать?

Автор - Pelena
Дата добавления - 13.09.2017 в 12:08
китин Дата: Среда, 13.09.2017, 12:16 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4331
Репутация: 673 ±
Замечаний: 0% ±

Excel 2007;Excel 2010
не катит %) выдает дебаг.
Конечная цель какая

конкретно сейчас :скопировать три раздельные ячейки
[vba]
Код
Sheets("Лист1").Range("I" & i & ", M" & i & ", R" & i).Copy
[/vba]


Не судите строго:я пытаюсь научиться
ЯД 41001877306852/WM R249698041931; Z239672726538


Сообщение отредактировал китин - Среда, 13.09.2017, 12:18
 
Ответить
Сообщениене катит %) выдает дебаг.
Конечная цель какая

конкретно сейчас :скопировать три раздельные ячейки
[vba]
Код
Sheets("Лист1").Range("I" & i & ", M" & i & ", R" & i).Copy
[/vba]

Автор - китин
Дата добавления - 13.09.2017 в 12:16
Pelena Дата: Среда, 13.09.2017, 12:22 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11491
Репутация: 2555 ±
Замечаний: 0% ±

Excel 2010, 2016 & Mac Excel
У меня так работает
[vba]
Код
i = 1
Sheets("Лист1").Range("I" & i & ", M" & i & ", R" & i).Copy Cells(i, 1)
[/vba]
вставляет, правда, подряд
К сообщению приложен файл: 6118653.xlsm(13Kb)


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеУ меня так работает
[vba]
Код
i = 1
Sheets("Лист1").Range("I" & i & ", M" & i & ", R" & i).Copy Cells(i, 1)
[/vba]
вставляет, правда, подряд

Автор - Pelena
Дата добавления - 13.09.2017 в 12:22
_Boroda_ Дата: Среда, 13.09.2017, 12:28 | Сообщение № 5
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11327
Репутация: 4676 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
выдает дебаг.

Эт потому, что между & и " пробел нужен. Лена во втором посте случайно пропустила
[vba]
Код
Range("I" & i & ",M" & i & ",R" & i & "")
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
выдает дебаг.

Эт потому, что между & и " пробел нужен. Лена во втором посте случайно пропустила
[vba]
Код
Range("I" & i & ",M" & i & ",R" & i & "")
[/vba]

Автор - _Boroda_
Дата добавления - 13.09.2017 в 12:28
китин Дата: Среда, 13.09.2017, 12:32 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4331
Репутация: 673 ±
Замечаний: 0% ±

Excel 2007;Excel 2010
странно:
[vba]
Код
Sheets("Лист1").Range("I" & i & ", M" & i & ", R" & i).Select
[/vba]
работает, то есть три ячейки выделяет
а
[vba]
Код
Sheets("Лист1").Range("I" & i & ", M" & i & ", R" & i).Copy
[/vba]
выдает дебаг
возникает вопрос: почему


Не судите строго:я пытаюсь научиться
ЯД 41001877306852/WM R249698041931; Z239672726538
 
Ответить
Сообщениестранно:
[vba]
Код
Sheets("Лист1").Range("I" & i & ", M" & i & ", R" & i).Select
[/vba]
работает, то есть три ячейки выделяет
а
[vba]
Код
Sheets("Лист1").Range("I" & i & ", M" & i & ", R" & i).Copy
[/vba]
выдает дебаг
возникает вопрос: почему

Автор - китин
Дата добавления - 13.09.2017 в 12:32
китин Дата: Среда, 13.09.2017, 12:35 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4331
Репутация: 673 ±
Замечаний: 0% ±

Excel 2007;Excel 2010
вот код
[vba]
Код
Sub TTT()
Dim Lr&, Lr1&, Lr2&, i&
    Lr = Sheets("Лист1").Cells(Rows.Count, 2).End(xlUp).Row
    Lr1 = Sheets("Лист2").Cells(Rows.Count, 1).End(xlUp).Row
    Sheets("Лист2").Range("A3:C" & Lr1 + 1).Clear
        Sheets("Лист1").Activate
     For i = 2 To Lr
            If Sheets("Лист1").Cells(i, 2).Value = Sheets("Лист2").Cells(2, 1).Value Then
                 Lr1 = Sheets("Лист2").Cells(Rows.Count, 1).End(xlUp).Row
                Sheets("Лист1").Range("I" & i & ",M" & i & ",R" & i & "").Copy
                     
                        Sheets("Лист2").Cells(Lr1 + 1, 1).PasteSpecial
                        
            End If
        Next
        Sheets("Лист2").Activate
End Sub
[/vba]
вот скрин
К сообщению приложен файл: 1904766.jpg(58Kb)


Не судите строго:я пытаюсь научиться
ЯД 41001877306852/WM R249698041931; Z239672726538
 
Ответить
Сообщениевот код
[vba]
Код
Sub TTT()
Dim Lr&, Lr1&, Lr2&, i&
    Lr = Sheets("Лист1").Cells(Rows.Count, 2).End(xlUp).Row
    Lr1 = Sheets("Лист2").Cells(Rows.Count, 1).End(xlUp).Row
    Sheets("Лист2").Range("A3:C" & Lr1 + 1).Clear
        Sheets("Лист1").Activate
     For i = 2 To Lr
            If Sheets("Лист1").Cells(i, 2).Value = Sheets("Лист2").Cells(2, 1).Value Then
                 Lr1 = Sheets("Лист2").Cells(Rows.Count, 1).End(xlUp).Row
                Sheets("Лист1").Range("I" & i & ",M" & i & ",R" & i & "").Copy
                     
                        Sheets("Лист2").Cells(Lr1 + 1, 1).PasteSpecial
                        
            End If
        Next
        Sheets("Лист2").Activate
End Sub
[/vba]
вот скрин

Автор - китин
Дата добавления - 13.09.2017 в 12:35
_Boroda_ Дата: Среда, 13.09.2017, 12:38 | Сообщение № 8
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11327
Репутация: 4676 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А теперь почитай что тебе vba ругается.
Ячейка. Объединенная. Как ты ее кусок копировать собрался?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА теперь почитай что тебе vba ругается.
Ячейка. Объединенная. Как ты ее кусок копировать собрался?

Автор - _Boroda_
Дата добавления - 13.09.2017 в 12:38
Pelena Дата: Среда, 13.09.2017, 12:49 | Сообщение № 9
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11491
Репутация: 2555 ±
Замечаний: 0% ±

Excel 2010, 2016 & Mac Excel
пробел нужен

Ну, пробелы-то редактор и сам подставит B)


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
Сообщение
пробел нужен

Ну, пробелы-то редактор и сам подставит B)

Автор - Pelena
Дата добавления - 13.09.2017 в 12:49
китин Дата: Среда, 13.09.2017, 13:12 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4331
Репутация: 673 ±
Замечаний: 0% ±

Excel 2007;Excel 2010
Ячейка. Объединенная

тьфу..... вечно я эти объединения пропускаю


Не судите строго:я пытаюсь научиться
ЯД 41001877306852/WM R249698041931; Z239672726538
 
Ответить
Сообщение
Ячейка. Объединенная

тьфу..... вечно я эти объединения пропускаю

Автор - китин
Дата добавления - 13.09.2017 в 13:12
_Boroda_ Дата: Среда, 13.09.2017, 13:19 | Сообщение № 11
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11327
Репутация: 4676 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
пробелы-то редактор и сам подставит

А, ну да, в этом случае да, поставит. Кто ж знал-то, что у Игоря там объединенные ячейки?
Можно даже так
Код
Range("I"&i &",M"&i &",R"&i)

А вот если нет пробела между переменной и &, то ругается. Поэтому я обычно на редактор не надеюсь, а ставлю сам как положено


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
пробелы-то редактор и сам подставит

А, ну да, в этом случае да, поставит. Кто ж знал-то, что у Игоря там объединенные ячейки?
Можно даже так
Код
Range("I"&i &",M"&i &",R"&i)

А вот если нет пробела между переменной и &, то ругается. Поэтому я обычно на редактор не надеюсь, а ставлю сам как положено

Автор - _Boroda_
Дата добавления - 13.09.2017 в 13:19
Udik Дата: Среда, 13.09.2017, 14:49 | Сообщение № 12
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 191 ±
Замечаний: 0% ±

Excel 2016 х 64
а метод Union не подходит разве
[vba]
Код

with Sheets("Лист1")
  set rng1=application.Union(.Cells(i, 9), .Cells(i, 13), .Cells(i, 18))
end with
[/vba]


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
Сообщениеа метод Union не подходит разве
[vba]
Код

with Sheets("Лист1")
  set rng1=application.Union(.Cells(i, 9), .Cells(i, 13), .Cells(i, 18))
end with
[/vba]

Автор - Udik
Дата добавления - 13.09.2017 в 14:49
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как задать несвязанные диапазоны в Range()? (Макросы/Sub)
Страница 1 из 11
Поиск:

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