Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2020, 03:23   #1
f_murtazin
Новичок
Джуниор
 
Регистрация: 03.04.2020
Сообщений: 2
Вопрос копировать ячейки по условию на другой лист

Добрый день

пытаюсь разобраться в vba подскажите пожалуйста, что нет так?

как должно работать
если на листе "свод по банкам" в строке, значение в столбце B = RUB нужно скопировать значение строки в столбцах A,D,G,J на лист "T042A rub" в столбцы A,B,C,D

если значение <>RUB значения этой строки не копировать

что не так в коде, отрабатывает без ошибок, но результата нет
Вложения
Тип файла: xlsx пример.xlsx (783.5 Кб, 8 просмотров)
f_murtazin вне форума Ответить с цитированием
Старый 03.04.2020, 09:05   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

А макрос-то где собственно?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 03.04.2020, 10:11   #3
f_murtazin
Новичок
Джуниор
 
Регистрация: 03.04.2020
Сообщений: 2
По умолчанию

Sub Macros()
Dim sh As Worksheet, sh2 As Worksheet
Dim rng As Range, i As Long, r As Long, shr As Long
Set sh = Sheets("свод по банкам")
Set sh2 = Sheets("T042A rub")
' строк в исходном
shr = sh.Cells(sh.Rows.Count, 1).End(xlUp).Row
With sh
' перебираем элементы
For i = 3 To .Cells(.Rows.Count, 2).End(xlUp).Row
' найдено совпадение
If sh.Cells(i, "B") = RUB Then
' последняя строка
r = sh2.Cells(sh2.Rows.Count, 1).End(xlUp).Row + 1
' перенос значений
.Cells(sh2, "A") = .Cells(sh, "A")
.Cells(sh2, "B") = .Cells(sh, "D")
.Cells(sh2, "C") = .Cells(sh, "B")
.Cells(sh2, "D") = .Cells(sh, "J")
' выход из цикла
Exit For
End If
Next i
End With
Set sh = Nothing
Set sh2 = Nothing
End Sub
f_murtazin вне форума Ответить с цитированием
Старый 03.04.2020, 11:50   #4
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
For i = 3 To .Cells(.Rows.Count, 2).End(xlUp).Row
' найдено совпадение
If .Cells(i, "B") = "RUB" Then
' последняя строка
r = sh2.Cells(sh2.Rows.Count, 1).End(xlUp).Row + 1
' перенос значений
sh2.Cells(r, "A") = .Cells(i, "A")
sh2.Cells(r, "B") = .Cells(i, "D")
sh2.Cells(r, "C") = .Cells(i, "B")
sh2.Cells(r, "D") = .Cells(i, "J")
' выход из цикла
Exit For
End If
Next i
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 03.04.2020, 16:10   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Sub CopyRub()
  Dim sh As Worksheet, rg1 As Range, rg2 As Range, r&, re&, r2&
  Set sh = Worksheets("T042A rub")
  With Worksheets("свод по банкам")
    re = .Cells(.Rows.Count, 1).End(xlUp).Row
    r2 = sh2.Cells(sh2.Rows.Count, 1).End(xlUp).Row + 1
    Set rg1 = .Range("A1:D1"): Set rg2 = sh.Range("A1:D1")
    For r = 3 To re
      If .Cells(i, "B") = "RUB" Then
        gr2.Offset(r2 - 1) = rg1.Offset(r - 1): r2 = r2 + 1
      End If
    Next i
  End With
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как копировать ячейки в другой лист кнопкой 5mrs Microsoft Office Excel 3 30.01.2015 13:49
Копировать нескольку строку в другой лист с условиями Aqil_f Microsoft Office Excel 2 29.01.2015 11:41
Копирование строк таблицы по условию одной ячейки из Лист 1 в Лист 2 Людвиг Microsoft Office Excel 5 25.10.2014 11:46
копировать ячейки из другой книги Magnetic Air Microsoft Office Excel 5 17.02.2011 01:16
Выбор из столбца по критерию и копировать ячейку из этой строки на другой лист Тетя Мотя Microsoft Office Excel 1 17.09.2009 16:46