Добрый день. Прошу помощи с решением задачки. Написание макросов для меня задача совершенно новая. Необходимо объединять ячейки построчно, если в 1й колонке совпадают порядковые номера. Объединять оставляя значения 1й строки. Кроме трёх столбцов. А именно:
Выработка (закрыто часов по нарядам), нормо-час Номер заказа Текст заказа (Они выделены желтым в файле примера) С помощью гугла я написал макрос. Он работает. Но не умеет исключать эти три столбца. Для меня тут сложность в том, что количество столбцов в документе может меняться. Т.е. местоположение этих 3х столбцов, которые надо оставить без изменения - не фиксированное. Возможно меня кто-то натолкнет на мысль как это реализовать, доработав мой макрос. Как должны выглядеть эти столбцы можно посмотреть на приложенной картинке.
Заранее спасибо.
Добрый день. Прошу помощи с решением задачки. Написание макросов для меня задача совершенно новая. Необходимо объединять ячейки построчно, если в 1й колонке совпадают порядковые номера. Объединять оставляя значения 1й строки. Кроме трёх столбцов. А именно:
Выработка (закрыто часов по нарядам), нормо-час Номер заказа Текст заказа (Они выделены желтым в файле примера) С помощью гугла я написал макрос. Он работает. Но не умеет исключать эти три столбца. Для меня тут сложность в том, что количество столбцов в документе может меняться. Т.е. местоположение этих 3х столбцов, которые надо оставить без изменения - не фиксированное. Возможно меня кто-то натолкнет на мысль как это реализовать, доработав мой макрос. Как должны выглядеть эти столбцы можно посмотреть на приложенной картинке.
If Cells(2, c) <> "Выработка (закрыто часов по нарядам), нормо-час" and Cells(2, c) <> "Номер заказа" And Cells(2, c) <> "Текст заказа" Then Range(Cells(a, c), Cells(b, c)).Merge End if
[/vba]
Может сделать проверку по шапке [vba]
Код
If Cells(2, c) <> "Выработка (закрыто часов по нарядам), нормо-час" and Cells(2, c) <> "Номер заказа" And Cells(2, c) <> "Текст заказа" Then Range(Cells(a, c), Cells(b, c)).Merge End if
Может сделать проверку по шапке If Cells(2, c) <> "Выработка (закрыто часов по нарядам), нормо-час " and Cells(2, c) <> "Номер заказа " And Cells(2, c) <> "Текст заказа" Then Range(Cells(a, c), Cells(b, c)).Merge End if
Да, что-то вроде этого я пробовал. Но если значение ячейки текст, то не работает. Т.е. он не понимает именно текстовое значение. Если ради эксперимента озаглавить столбец числами, то такое простое добавление условия замечательно подходит.
Может сделать проверку по шапке If Cells(2, c) <> "Выработка (закрыто часов по нарядам), нормо-час " and Cells(2, c) <> "Номер заказа " And Cells(2, c) <> "Текст заказа" Then Range(Cells(a, c), Cells(b, c)).Merge End if
Да, что-то вроде этого я пробовал. Но если значение ячейки текст, то не работает. Т.е. он не понимает именно текстовое значение. Если ради эксперимента озаглавить столбец числами, то такое простое добавление условия замечательно подходит.reader22
если значение ячейки текст, то не работает. Т.е. он не понимает именно текстовое значение
Глупости! Просто текст в шапке не совпадает с текстом в коде. Попробуйте так [vba]
Код
If Trim(Cells(2, c)) <> "Выработка (закрыто часов по нарядам), нормо-час" And Trim(Cells(2, c)) <> "Номер заказа" And Trim(Cells(2, c)) <> "Текст заказа" Then Range(Cells(a, c), Cells(b, c)).Merge End If
если значение ячейки текст, то не работает. Т.е. он не понимает именно текстовое значение
Глупости! Просто текст в шапке не совпадает с текстом в коде. Попробуйте так [vba]
Код
If Trim(Cells(2, c)) <> "Выработка (закрыто часов по нарядам), нормо-час" And Trim(Cells(2, c)) <> "Номер заказа" And Trim(Cells(2, c)) <> "Текст заказа" Then Range(Cells(a, c), Cells(b, c)).Merge End If
Глупости! Просто текст в шапке не совпадает с текстом в коде. Попробуйте так
Текст вставлял копипастом, не работало, но вот предложенный вами Trim действительно исправил ситуацию. Вопрос исчерпан, большое спасибо за помощь.reader22