Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Объеденение повторяющихся ячеек 
V
    Опции темы
Eland
Дата 23.5.2006, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 20.1.2006

Репутация: нет
Всего: нет



Ребят, есть у кого скриптик для объеденения одинаковых ячеек в одну ?
Т.е.
Есть например столбец

Код

AAAA
AAAA
BBBB
CCCC
CCCC
BBBB


И вот ячейки, где за АААА следует АААА и где за СССС следует СССС должны быть объеденены в одну, т.е. должно получиться:

Код

АААА

BBBB
CCCC

BBBB


А если это возможно реализовать встроенными средствами офиса - объясните плз.  smile  
PM MAIL   Вверх
Artiom
Дата 23.5.2006, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1031
Регистрация: 11.3.2003
Где: Минск\Баку

Репутация: 1
Всего: 17



Код

 Dim tmp As Variant
 Dim minN, maxN As Integer
 minN = 1   'начало диапазона для проверки
 maxN = 9   'конец диапазона
 tmp = Sheets("NameOfsheet").Range("E" & minN).Value
 For n = minN + 1 To maxN
    If Sheets("NameOfsheet").Range("E" & n).Value = tmp Then
        Sheets("NameOfsheet").Range("E" & n).Value = ""
    Else
        tmp = Sheets("NameOfsheet").Range("E" & n).Value
    End If
 Next
 

Вот например пройти как можно пройти по столбцу E. 


--------------------
Если тебя жизнь трахает, значит, ты ещё живой
PM MAIL ICQ   Вверх
Eland
Дата 23.5.2006, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 20.1.2006

Репутация: нет
Всего: нет



Не, мне немного не это надо.
Там есть функция такая "Merge"
Надо, чтобы не просто удаляла записи, а соединяла ячейки. 
PM MAIL   Вверх
Eland
Дата 23.5.2006, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 20.1.2006

Репутация: нет
Всего: нет



В общем, вот что пока получилось:

Код

Sub DupsJoin()

Dim otkuda, j, dokuda
otkuda = 2  'Откуда
dokuda = 417 'Докуда

For i = otkuda To dokuda
    
If i > 1 Then
    For j = i To dokuda
    
        If Range("A" & j).Value <> Range("A" & i).Value Then
            Range("A" & i, "A" & j - 1).Merge
            i = j - 1
            Exit For
        End If
            
    Next j
End If

Next i
End Sub


Ещё бы убрать подтверждения и было бы совсем замечательно.
Кстати, никто не знает, как это сделать ? 

Это сообщение отредактировал(а) Eland - 23.5.2006, 15:11
PM MAIL   Вверх
Artiom
Дата 23.5.2006, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1031
Регистрация: 11.3.2003
Где: Минск\Баку

Репутация: 1
Всего: 17



Код

SendKeys "{enter}"
 


--------------------
Если тебя жизнь трахает, значит, ты ещё живой
PM MAIL ICQ   Вверх
Izuver
Дата 13.6.2006, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 352
Регистрация: 13.6.2006
Где: Омск

Репутация: 2
Всего: 2



Мучила меня такая фигня. Попробуй это

Sub Объединение_ячеек()
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
A = Selection.Rows.Count
Cells(1, 2).EntireColumn.Insert
Cells(1, 2).EntireColumn.Insert
For i = 1 To A
If Cells(i, 1) <> Cells(i + 1, 1) Then
Cells(i, 2).FormulaR1C1 = "=ROW()"
Cells(i, 3).FormulaR1C1 = "=COUNTIF(C[-2],RC[-2])"
Columns("C:C").Copy
Columns("C:C").PasteSpecial Paste:=xlPasteValues
End If
Next i
Cells(i + 1, 2).FormulaR1C1 = "=ROW()"
j = 1
Do
Do While Cells(j, 3) = 1
j = j + 1
Loop
Cells(j, 2).End(xlDown).Select
Set x = Selection
Range(Cells(j, 1), Cells(x - 1, 1)).ClearContents
Range(Cells(j, 1), Cells(x, 1)).Merge
j = x + 1
        If x = A + 2 Then
        Exit Do
        End If
Loop
Columns("B:C").EntireColumn.Delete
End Sub
 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0961 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.