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

Вход

Регистрация

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

 

= Мир MS Excel/Обьеденение столбцов в новый с проверкой условия - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Обьеденение столбцов в новый с проверкой условия (Макросы/Sub)
Обьеденение столбцов в новый с проверкой условия
si Дата: Среда, 30.09.2015, 12:37 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Подскажите пожалуйста как можно объединять столбцы в новый с проверкой условия имеется ли в столбце значение или нет, если значение есть то добавить в новый столбец с описанием столбца. Удалось сделать это, но без проверки условия.
[vba]
Код
Sub Main()
      Dim i As Long, a(), b(): Application.ScreenUpdating = False
      a = Range([AH1], Cells(Cells(Rows.Count, 1).End(xlUp).Row, 4)).Value: ReDim b(1 To UBound(a, 1), 1 To 1)      
      For i = 1 To UBound(a, 1): b(i, 1) = "Фамилия.:" & a(i, 1) & ", Имя: " & a(i, 2) & ", Отчество:" & a(i, 3) & ", Марка авто:" & a(i, 4): Next
      Range([E2], Cells(UBound(b, 1) + 1, 5)).Value = b
End Sub
[/vba]

Сейчас получается так что если нет отчества или авто: Фамилия.: Иванов Имя: Иван Отчество:Марка авто:
Правильно будет так (при условии что нет отчества и авто): Фамилия.: Иванов Имя: Иван


Сообщение отредактировал si - Среда, 30.09.2015, 12:37
 
Ответить
СообщениеПодскажите пожалуйста как можно объединять столбцы в новый с проверкой условия имеется ли в столбце значение или нет, если значение есть то добавить в новый столбец с описанием столбца. Удалось сделать это, но без проверки условия.
[vba]
Код
Sub Main()
      Dim i As Long, a(), b(): Application.ScreenUpdating = False
      a = Range([AH1], Cells(Cells(Rows.Count, 1).End(xlUp).Row, 4)).Value: ReDim b(1 To UBound(a, 1), 1 To 1)      
      For i = 1 To UBound(a, 1): b(i, 1) = "Фамилия.:" & a(i, 1) & ", Имя: " & a(i, 2) & ", Отчество:" & a(i, 3) & ", Марка авто:" & a(i, 4): Next
      Range([E2], Cells(UBound(b, 1) + 1, 5)).Value = b
End Sub
[/vba]

Сейчас получается так что если нет отчества или авто: Фамилия.: Иванов Имя: Иван Отчество:Марка авто:
Правильно будет так (при условии что нет отчества и авто): Фамилия.: Иванов Имя: Иван

Автор - si
Дата добавления - 30.09.2015 в 12:37
Pelena Дата: Среда, 30.09.2015, 13:55 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19197
Репутация: 4423 ±
Замечаний: ±

Excel 365 & Mac Excel
Как-то так (проверить не на чем, файла с примером нет)
[vba]
Код
     b(i, 1) = IIf(a(i, 1) <> "", "Фамилия.:" & a(i, 1) & ", ", "") & IIf(a(i, 2) <> "", "Имя: " & a(i, 2) & ", ", "") & IIf(a(i, 3) <> "", "Отчество:" & a(i, 3) & ", ", "") & IIf(a(i, 4) <> "", "Марка авто:" & a(i, 4), "")
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеКак-то так (проверить не на чем, файла с примером нет)
[vba]
Код
     b(i, 1) = IIf(a(i, 1) <> "", "Фамилия.:" & a(i, 1) & ", ", "") & IIf(a(i, 2) <> "", "Имя: " & a(i, 2) & ", ", "") & IIf(a(i, 3) <> "", "Отчество:" & a(i, 3) & ", ", "") & IIf(a(i, 4) <> "", "Марка авто:" & a(i, 4), "")
[/vba]

Автор - Pelena
Дата добавления - 30.09.2015 в 13:55
si Дата: Среда, 30.09.2015, 16:38 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Да, спасибо, все работает прекрасно, еще такой вопрос, как можно добавить в текущий цикл по строкам
проверку по столбцу и есть условие не удовлетворяется то удалить данную строку из файла.

Ну что то такое наверное: [vba]
Код
IIf (a(i,9)<>200, Rows(i).Delete,"")
[/vba]
В коде не силен, не судите строго, пытался написать сам, как правильно написать подобную строку, и где именно ее нужно разместить чтоб не писать дополнительны цикл по строкам, так сказать минимизировать код
 
Ответить
СообщениеДа, спасибо, все работает прекрасно, еще такой вопрос, как можно добавить в текущий цикл по строкам
проверку по столбцу и есть условие не удовлетворяется то удалить данную строку из файла.

Ну что то такое наверное: [vba]
Код
IIf (a(i,9)<>200, Rows(i).Delete,"")
[/vba]
В коде не силен, не судите строго, пытался написать сам, как правильно написать подобную строку, и где именно ее нужно разместить чтоб не писать дополнительны цикл по строкам, так сказать минимизировать код

Автор - si
Дата добавления - 30.09.2015 в 16:38
Pelena Дата: Среда, 30.09.2015, 17:09 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 19197
Репутация: 4423 ±
Замечаний: ±

Excel 365 & Mac Excel
Этот вопрос не относится к данной теме. Читайте Правила форума и создавайте новую тему


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЭтот вопрос не относится к данной теме. Читайте Правила форума и создавайте новую тему

Автор - Pelena
Дата добавления - 30.09.2015 в 17:09
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Обьеденение столбцов в новый с проверкой условия (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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