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

Вход

Регистрация

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

 

= Мир MS Excel/Не выделяет диапазон для копирования на новый лист - Мир MS Excel

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

Excel 2010
Здравствуйте!
Не могу разобраться с ошибкой выделения для копирования с одного листа на другой.
Прошу объяснить не корректность в коде.
Спасибо.
[vba]
Код


d = Sheets.Count - 2
kS = 0
For i = 2 To d
    m = 5
    While Worksheets(i).Cells(m + 1, 7).Value <> ""
        m = m + 1
    Wend
    For j = 6 To m
        If Worksheets(i).Cells(j, 7).Interior.Color = 65535 Then
            kS = kS + 1
            n = 5
            While Worksheets("work").Cells(m + 1, 3).Value <> ""
                n = n + 1
            Wend
            Worksheets(i).Range("C" & j & ": L" & j).Select
            Selection.Copy
            Worksheets("work").Activate
            Worksheets("work").Range("C" & n & ": L" & n).Select
            ActiveSheet.Paste
        End If
    Next j

Next i

[/vba]


Саморазвитие - это всё...
 
Ответить
СообщениеЗдравствуйте!
Не могу разобраться с ошибкой выделения для копирования с одного листа на другой.
Прошу объяснить не корректность в коде.
Спасибо.
[vba]
Код


d = Sheets.Count - 2
kS = 0
For i = 2 To d
    m = 5
    While Worksheets(i).Cells(m + 1, 7).Value <> ""
        m = m + 1
    Wend
    For j = 6 To m
        If Worksheets(i).Cells(j, 7).Interior.Color = 65535 Then
            kS = kS + 1
            n = 5
            While Worksheets("work").Cells(m + 1, 3).Value <> ""
                n = n + 1
            Wend
            Worksheets(i).Range("C" & j & ": L" & j).Select
            Selection.Copy
            Worksheets("work").Activate
            Worksheets("work").Range("C" & n & ": L" & n).Select
            ActiveSheet.Paste
        End If
    Next j

Next i

[/vba]

Автор - DreOne
Дата добавления - 27.06.2017 в 19:21
AndreTM Дата: Вторник, 27.06.2017, 19:35 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1540
Репутация: 444 ±
Замечаний: 0% ±

2003 & 2010
[vba]
Код
            While Worksheets("work").Cells(m + 1, 3).Value <> ""
                n = n + 1
            Wend
[/vba]Проверяете m а, инкременируете n


Donate: Qiwi: 9517375010
 
Ответить
Сообщение[vba]
Код
            While Worksheets("work").Cells(m + 1, 3).Value <> ""
                n = n + 1
            Wend
[/vba]Проверяете m а, инкременируете n

Автор - AndreTM
Дата добавления - 27.06.2017 в 19:35
DreOne Дата: Вторник, 27.06.2017, 19:43 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 35
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Проверяете m а, инкременируете n


Спасибо, изменил.

Но ошибку выдает на строчке
[vba]
Код

Worksheets(i).Range("C" & j & ": L" & j).Select
[/vba]


Саморазвитие - это всё...
 
Ответить
Сообщение
Проверяете m а, инкременируете n


Спасибо, изменил.

Но ошибку выдает на строчке
[vba]
Код

Worksheets(i).Range("C" & j & ": L" & j).Select
[/vba]

Автор - DreOne
Дата добавления - 27.06.2017 в 19:43
Udik Дата: Вторник, 27.06.2017, 19:48 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1495
Репутация: 184 ±
Замечаний: 0% ±

Excel 2016 х 64
Ну т.е. мы должны телепатически определить что с Вашим файлом не так. Например, i стало больше количества листов, или лист неактивный. :p


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com


Сообщение отредактировал Udik - Вторник, 27.06.2017, 19:51
 
Ответить
СообщениеНу т.е. мы должны телепатически определить что с Вашим файлом не так. Например, i стало больше количества листов, или лист неактивный. :p

Автор - Udik
Дата добавления - 27.06.2017 в 19:48
DreOne Дата: Вторник, 27.06.2017, 20:09 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 35
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Файл не прикрепить, более 300 КБ.
Использовать ссылки я. Диска же можно?


Саморазвитие - это всё...
 
Ответить
СообщениеФайл не прикрепить, более 300 КБ.
Использовать ссылки я. Диска же можно?

Автор - DreOne
Дата добавления - 27.06.2017 в 20:09
Udik Дата: Вторник, 27.06.2017, 20:17 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1495
Репутация: 184 ±
Замечаний: 0% ±

Excel 2016 х 64
Сократите файл, не надо 100500 строк данных, достаточно 10.


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
СообщениеСократите файл, не надо 100500 строк данных, достаточно 10.

Автор - Udik
Дата добавления - 27.06.2017 в 20:17
DreOne Дата: Вторник, 27.06.2017, 21:36 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 35
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Удалено администрацией

Смог до 216 кб урезать.


Саморазвитие - это всё...
 
Ответить
СообщениеУдалено администрацией

Смог до 216 кб урезать.

Автор - DreOne
Дата добавления - 27.06.2017 в 21:36
Manyasha Дата: Вторник, 27.06.2017, 23:05 | Сообщение № 8
Группа: Модераторы
Ранг: Старожил
Сообщений: 1896
Репутация: 780 ±
Замечаний: 0% ±

Excel 2010, 2016
Select работает только на активном листе.
кусок с копипастом можно переписать так:
[vba]
Код
            Worksheets(i).Range("C" & j & ": L" & j).Copy Worksheets("work").Range("C" & n & ": L" & n)
[/vba]
[offtop]
или лист неактивный

что-то я не дочитала...))[/offtop]


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804


Сообщение отредактировал Manyasha - Вторник, 27.06.2017, 23:06
 
Ответить
СообщениеSelect работает только на активном листе.
кусок с копипастом можно переписать так:
[vba]
Код
            Worksheets(i).Range("C" & j & ": L" & j).Copy Worksheets("work").Range("C" & n & ": L" & n)
[/vba]
[offtop]
или лист неактивный

что-то я не дочитала...))[/offtop]

Автор - Manyasha
Дата добавления - 27.06.2017 в 23:05
DreOne Дата: Среда, 28.06.2017, 02:15 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 35
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Select работает только на активном листе.
кусок с копипастом можно переписать так:

Спасибо Вам огромное, копирование работает.
Буду разбираться, почему копирует только на одну строчку на новом листе.
Еще раз спасибо


Саморазвитие - это всё...
 
Ответить
Сообщение
Select работает только на активном листе.
кусок с копипастом можно переписать так:

Спасибо Вам огромное, копирование работает.
Буду разбираться, почему копирует только на одну строчку на новом листе.
Еще раз спасибо

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

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