Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как определить объединены ли ячеки в Excelе / 6 сообщений из 6, страница 1 из 1
27.10.2009, 10:53
    #36274244
Как определить объединены ли ячеки в Excelе
Добрый день. Возник вопрос, помогите пож-та.
Есть шаблон Excel. Скрипт vb идёт по конкретной строке и последовательно вставляет данные в ячейки. Мне нужно перед вставкой проверять, не объединена ли текущая ячейка со следующей(ими). Если да, то следующее значение выводить в ячеку, следующую за ячеками, которые входят в это объединение...
...
Рейтинг: 0 / 0
27.10.2009, 11:01
    #36274272
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить объединены ли ячеки в Excelе
Нашёл такой код, можно использовать наверное cc.MergeArea.Rows.Count :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Sub UnMergeMine()
Dim cc As Range, cm As Range, ccm As Range
For Each cc In Selection
If cc.MergeCells Then
   If cc.MergeArea.Columns.Count >  5  Then
   Set cm = Range(cc.MergeArea.Address)
   cc.UnMerge
   End If
End If
Next cc

End Sub
...
Рейтинг: 0 / 0
27.10.2009, 12:29
    #36274500
Как определить объединены ли ячеки в Excelе
Hugo121,

Спасибо большое. Вот что получилось.
Ещё мне не нравится этот цикл...помогите от него избавиться...
(сразу говорю: только начал работать с Excel-ем и VB, так что не ругайтесь...)

'функция принимает ячейку; возвращает следующую ячейку, не входящую в объединение
Function NextUnMergeCL(rw, cl) As Integer
Dim cc As Range
ActiveSheet.Range(Cells(rw, cl), Cells(rw, cl)).Select

For Each cc In Selection
If cc.MergeCells Then NextUnMergeCL = cl + cc.MergeArea.Columns.Count
Else NextUnMergeCL = cl + 1;
Exit Function
Next cc

End Function
...
Рейтинг: 0 / 0
27.10.2009, 12:52
    #36274568
MaximuS_G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить объединены ли ячеки в Excelе
Олег Мигутинстроке и последовательно вставляет данные в ячейки. Мне нужно перед вставкой проверять, не объединена ли текущая ячейка со следующей
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub UseObjectExplorer()
Dim myrange As Range
Dim iData As Integer

iData =  5 
Set myrange = Cells( 4 ,  3 )

If myrange.MergeArea.Address = myrange.Address Then ' ячейка не входит в объеденение
    myrange.Value = iData
Else ' ячейка не входит в объеденение
    myrange.MergeArea.Offset( 1 ,  0 ).Value = iData
End If

End Sub

Здесь:
Код: plaintext
Function NextUnMergeCL(rw, cl) As Integer
NextUnMergeCL(rw, cl) = NextUnMergeCL(rw as variant, cl as variant) - очень ресурсозатратно.
Лучше так
Код: plaintext
NextUnMergeCL(rw as integer, cl as byte)

ТСсразу говорю: только начал работать с Excel-ем и VB
Совет: научитесь пользоваться Object Explorer'ом
...
Рейтинг: 0 / 0
27.10.2009, 12:55
    #36274575
MaximuS_G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить объединены ли ячеки в Excelе
Правильные комменты...
Код: plaintext
1.
2.
3.
4.
If myrange.MergeArea.Address = myrange.Address Then ' ячейка не входит в объеденение
    myrange.Value = iData
Else ' ячейка входит в объеденение
    myrange.MergeArea.Offset( 1 ,  0 ).Value = iData
End If
...
Рейтинг: 0 / 0
27.10.2009, 13:13
    #36274628
Как определить объединены ли ячеки в Excelе
MaximuS_G,

=)))) Спасибо большое
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как определить объединены ли ячеки в Excelе / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]