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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2012, 12:07   #1
Blame
Пользователь
 
Регистрация: 24.12.2011
Сообщений: 70
По умолчанию объединить 2столбца в один без перекрытия ячеек.

Добрый день!

Есть 3 столбца. В первом хранится своего рода ключ: данные, содержащие значения 1,2,3.
Если в 1ом столбце стоит 1- записать в 4ый столбец данные из столбца 2.
Если в 1ом столбце стоит 2 или 3 - записать в 4ый столбец данные из столбца 3.
Там где во 2ом столбце ячейки пустые,-заполнены в третьем. Там,где в третьем столбце ячейки пустые-заполнены во втором. или в обоих столбцах ячейки пустые.
Скажите,пожалуйста,как объединить эти 2 столбца(2 и 3) в один (4-ый), чтобы на место пустых ячеек 2ого столбца записались заполненные ячейки 3 столбца и на место пустых ячеек 3его столбца записались заполненные ячейки 2 столбца .
Я делаю так:

Код:
row_end = Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
For i = 2 To row_end
If Cells(i, 1) = 1 Then
Cells(i, 4) = Cells(i, 2)
End If
Next
For i = 2 To row_end
If Cells(i, 1) = 2 Or Cells(i, 1) = 3 Then
Cells(i, 4) = Cells(i, 3)
End If
Next
Next
Но это неправильно. Потому что получается наложение и перекрытие. Подскажите пожалуйста, как избежать этого?
Спасибо.
Peace!
Blame вне форума Ответить с цитированием
Старый 04.04.2012, 12:34   #2
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

например
Код:
row_end = Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
For i = 2 To row_end
    Select Case Cells(i, 1)
        Case 1: Cells(i, 4) = IIf(IsEmpty(Cells(i, 2)), Cells(i, 3), Cells(i, 2))
        Case 2, 3: Cells(i, 4) = IIf(IsEmpty(Cells(i, 3)), Cells(i, 2), Cells(i, 3))
    End Select
Next
nilem вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вставить диапазоны ячеек из разных файлов в один, но так чтобы они шли один ниже другого? Squarded Microsoft Office Excel 4 24.07.2011 19:24
Объединить два кода в один c++\noob Общие вопросы C/C++ 3 08.03.2011 11:21
Слить-объединить несколько файлов в один SLP Microsoft Office Excel 2 19.11.2008 18:13
Как объединить два массива в один. TheWanderer Общие вопросы C/C++ 2 10.11.2008 00:15
Объединить в один файл asale Microsoft Office Excel 2 12.02.2008 13:18