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

Вход

Регистрация

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

 

= Мир MS Excel/Копирование строки по условию и вставка как Значение - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование строки по условию и вставка как Значение (Макросы/Sub)
Копирование строки по условию и вставка как Значение
Donald Дата: Вторник, 03.04.2018, 10:02 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Есть макрос, он копирует строки с листа Word на лист СМС которые в столбце 10 не равны 0.
[vba]
Код
Sub Макрос1()
Dim LastRow As Long, Rw As Long 'Объявили переменный послдедних строк для двух слистов
Sheets("Word").Select 'выбрали нужный лист
LastRow = Cells(Rows.Count, 1).End(xlUp).Row 'Нашли номер последней строки на активном листе (там, где кнопка)
With Sheets("СМС") 'Применительно к СМС
Rw = .Cells(Rows.Count, 1).End(xlUp).Row + 1 'Нашли номер первой свободной строки на этом листе
Range(.Cells(4, 1), .Cells(Rw + 1, 5)).ClearContents 'Очистили ПОЛНОСТЬЮ диапазон на втором листе
Rw = 2 'Указали, что первая свободная строка =2
For i = 2 To LastRow 'Цикл со строки № 7 по последнюю заполненную (на активном листе)
If Cells(i, 10) <> 0 Then 'Если ячейка столбца 10 текущей строки не равна 0 , то
Range(Cells(i, 1), Cells(i, 45)).Copy .Cells(Rw, 1) 'Дипазон (текущая строка, столбцы 1:45) копируем в первую свободную ячейку второго листа
Rw = Rw + 1 'Увеличивем переменную-счётчик первой свободной строки второго листа
End If
Next
End With
End Sub
[/vba]
Проблема в том что в лист СМС строки нужно вставить как значение (без формул).
Спасибо
К сообщению приложен файл: 7659425.xlsm(70.0 Kb)
 
Ответить
СообщениеЕсть макрос, он копирует строки с листа Word на лист СМС которые в столбце 10 не равны 0.
[vba]
Код
Sub Макрос1()
Dim LastRow As Long, Rw As Long 'Объявили переменный послдедних строк для двух слистов
Sheets("Word").Select 'выбрали нужный лист
LastRow = Cells(Rows.Count, 1).End(xlUp).Row 'Нашли номер последней строки на активном листе (там, где кнопка)
With Sheets("СМС") 'Применительно к СМС
Rw = .Cells(Rows.Count, 1).End(xlUp).Row + 1 'Нашли номер первой свободной строки на этом листе
Range(.Cells(4, 1), .Cells(Rw + 1, 5)).ClearContents 'Очистили ПОЛНОСТЬЮ диапазон на втором листе
Rw = 2 'Указали, что первая свободная строка =2
For i = 2 To LastRow 'Цикл со строки № 7 по последнюю заполненную (на активном листе)
If Cells(i, 10) <> 0 Then 'Если ячейка столбца 10 текущей строки не равна 0 , то
Range(Cells(i, 1), Cells(i, 45)).Copy .Cells(Rw, 1) 'Дипазон (текущая строка, столбцы 1:45) копируем в первую свободную ячейку второго листа
Rw = Rw + 1 'Увеличивем переменную-счётчик первой свободной строки второго листа
End If
Next
End With
End Sub
[/vba]
Проблема в том что в лист СМС строки нужно вставить как значение (без формул).
Спасибо

Автор - Donald
Дата добавления - 03.04.2018 в 10:02
Апострофф Дата: Вторник, 03.04.2018, 10:16 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 157
Репутация: 56 ±
Замечаний: 0% ±

Excel 2003
Donald, вместо этой строки
[vba]
Код
Range(Cells(i, 1), Cells(i, 45)).Copy .Cells(Rw, 1) 'Дипазон (текущая строка, столбцы 1:45) копируем в первую свободную ячейку
[/vba]
попробуйте такую
[vba]
Код
.rows(Rw).value=rows(i).value
[/vba]
 
Ответить
СообщениеDonald, вместо этой строки
[vba]
Код
Range(Cells(i, 1), Cells(i, 45)).Copy .Cells(Rw, 1) 'Дипазон (текущая строка, столбцы 1:45) копируем в первую свободную ячейку
[/vba]
попробуйте такую
[vba]
Код
.rows(Rw).value=rows(i).value
[/vba]

Автор - Апострофф
Дата добавления - 03.04.2018 в 10:16
Donald Дата: Вторник, 03.04.2018, 10:21 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Спасибо, помогло.
 
Ответить
СообщениеСпасибо, помогло.

Автор - Donald
Дата добавления - 03.04.2018 в 10:21
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование строки по условию и вставка как Значение (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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