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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.10.2019, 05:05   #21
Petrov210217
Пользователь
 
Регистрация: 14.11.2018
Сообщений: 89
По умолчанию

У меня получилось так
Код:
Sub Кнопка1_Щелчок()
    Dim i As Long, j As Long, i2 As Long, j2 As Long
    
    With Sheets("Лист2") 'последняя заполненная ячейка на листе2
    lLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
    End With
    
    With Sheets("Лист3") 'последняя заполненная ячейка на листе3
    lLastRow2 = .Cells(.Rows.Count, 1).End(xlUp).Row
    End With
    
    For i = 1 To 5 'номер строки
        For j = 1 To 20 'номер столбца
            'Sheets("Лист3").Range("C1") = i
            'Sheets("Лист3").Range("C2") = j
            For i2 = 1 To 5 'номер строки
                For j2 = 1 To 20 'номер столбца
                    If Sheets("Лист2").Cells(1 + i, 1 + j) = Sheets("Лист3").Cells(1 + i2, 1 + j2) And Sheets("Лист2").Cells(1 + i, 2 + j) = Sheets("Лист3").Cells(1 + i2, 2 + j2) And Sheets("Лист2").Cells(1 + i, 4 + j) = Sheets("Лист3").Cells(1 + i2, 4 + j2) And Sheets("Лист2").Cells(1 + i, 5 + j) = Sheets("Лист3").Cells(1 + i2, 5 + j2) Then
                        With Sheets("Лист2").Cells(1 + i, 3 + j)
                            Sheets("Лист3").Cells(1 + i2, 3 + j2).Resize(.Rows.Count, .Columns.Count) = .Value
                        End With
                    End If
                Next
            Next
        Next
    Next
    MsgBox "Преобразование закончено"
    
End Sub
Работает, даже что то копирует. Но есть пара моментов которые надо исправить:
1. Как копировать с цветом? Я сделал текст на листе 2 красным, а макрос копирует текст с листа 2 на лист 3 черным.
2. Как сделать что бы макрос сам выбирал только заполненный диапазон ячеек и не работал там, где ячейки пустые.
Хочу попробовать через If, но не знаю как задать условие что ячейка пустая
Sheets("Лист2").Cells(1 + i, 1 + j) = пустая ячейка,
как записать что в ячейке ничего нет?
Или есть другой вариант?
ЫЫЫЫЫЫ

Последний раз редактировалось Petrov210217; 03.10.2019 в 05:20.
Petrov210217 вне форума Ответить с цитированием
Старый 03.10.2019, 08:30   #22
Petrov210217
Пользователь
 
Регистрация: 14.11.2018
Сообщений: 89
По умолчанию

С пустыми ячейками разобрался. Осталось решить вопрос как копировать с цветом. После выложу готовый код на осмеяние)))
ЫЫЫЫЫЫ
Petrov210217 вне форума Ответить с цитированием
Старый 03.10.2019, 08:49   #23
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Чтобы копировать с цветом - нужно копировать ячейку целиком, а не только её значение.
Если в ячейке формула - тогда возможно нужно сперва копировать формат ячейки, затем её значение, или сперва заменить формулу её значением, затем копировать ячейку.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 03.10.2019, 12:10   #24
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
If IsEmpty(Cells(10, 5)) then MsgBox "Ячейка Е10 пустая"
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Условие в PHP - Не работает условие: не выводит сообщение. Ave_Ave_Ave PHP 13 17.06.2016 12:20
условие в цикле govorun1 БД в Delphi 33 15.01.2014 20:58
Условие в цикле HiDunay Общие вопросы C/C++ 2 29.11.2013 19:03
условие в цикле с блокировкой колонок KSTeeen Microsoft Office Excel 9 18.11.2012 22:15
условие в цикле Николай Сергеевич Общие вопросы C/C++ 8 24.12.2009 14:25