Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/34: Рейтинг темы: голосов - 34, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 05.05.2006
Сообщений: 11

Нужно проверить объединены ли ячейки?

25.06.2006, 00:35. Показов 6480. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ячейка может не входить в объединение ячеек, может быть объединена с соседними. Например, ячейка А1 может быть объединена с ячейками B1 и C1, еще может быть обединена с ячейками B1, C1, D1 и E1, а может и не входить в объединение.. как это проверить?? в последствии необходимо задать условие, что если объединена с B1 и C1, то делаем то-то, а если с B1, C1, D1 и E1 - то то-то..
Здесь надо использовать свойства MergeCells или нет??
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.06.2006, 00:35
Ответы с готовыми решениями:

Как узнать объединены ли ячейки
Здравствуйте. Помогите пожалуйста. Как определить объединены ли ячейки. Задача такая перебирая строки в таблице определить объединены ли...

Объединение ячеек без потери данных, если объединены ячейки в столбце рядом
Здравствуйте! Есть таблица из двух столбцов, в столбце "А" часть ячеек объединена, нужно объединить ячейки напротив, без полери данных. ...

Проверить существование файла. Проверить содержание ячейки
Уважаемые программисты я только начинаю тернистый путь, так что извините если вопросы не корректны. 1) Я в цикле открываю по очереди...

5
0 / 0 / 0
Регистрация: 05.05.2006
Сообщений: 11
25.06.2006, 01:08  [ТС]
Поэкспериментировал и получилось сделать вот так вот..
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Set mb = Range("a15")
Set ma = Range("a1").MergeArea
If ma.Address = "$A$1" Then
    mb.Value = "months"
Else
    If ma.Address = "$A$1:$C$1" Then
    mb.Value = "quartals"
    Else
        If ma.Address = "$A$1:$L$1" Then
        mb.Value = "years"
        Else
        mb.Value = "months"
        End If
    End If
End If
Но у меня проблема возникла, я не могу задать Range через Range(cells (1, 1), пишет ошибку.. а мне именно так надо, потому что я адрес ячейки передаю переменной.
0
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
25.06.2006, 08:15
<A class=SmlBoldLinks id=ctl03_ctlTopic_ctlPanelBar_ctlTopicsR epeater_ctl06_smAuthorName onmouseover="window.status = window.location;return true;" title="View VladDudka's Profile..." onmouseout="window.status=''return true;" href="void(''); VladDudka,
Все-таки непонятно, что именно именно так надо и для чего, и в какой строке ошибка.
VladConn
0
0 / 0 / 0
Регистрация: 05.05.2006
Сообщений: 11
25.06.2006, 19:13  [ТС]
У меня есть две переменных
Visual Basic
1
2
3
4
Dim wcnt1 As Integer
Dim wcnt2 As Integer
wcnt1 = 1
wcnt2 = 5
И надо сделать вот так вот
If cells (wcnt1, 1) не объединена ни с одной ячейкой then
ячейке (wcnt2, 15) присваивается значение "months"
If cells (wcnt1, 1) объединена с ячейками (wcnt1+1, 1) и (wcnt1+2, 1) then
ячейке (wcnt2, 15) присваивается значение "quartals"
ну и если она объединена с 1 по 12 ячейки, то значение - год...
0
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
26.06.2006, 09:10
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Private Sub CommandButton1_Click()
    SetPeriods 1, 5, 1, 15, 3, 12, 1
End Sub
Private Sub SetPeriods(ByVal plngRowOne As Long, _
                       ByVal plngRowTwo As Long, _
                       ByVal pintColumnOne As Integer, _
                       ByVal pintColumnTwo As Integer, _
                       ByVal pintMergedCountOne As Integer, _
                       ByVal pintMergedCountTwo As Integer, _
                       ByVal pintWSheet As Integer)
    Dim objCellOne As Range
    Dim objCellTwo As Range
    Dim objMergedRange As Range
    Dim objWSheet As Worksheet
        
    Set objWSheet = ThisWorkbook.Worksheets(pintWSheet)
    Set objCellOne = objWSheet.Cells(plngRowOne, pintColumnOne)
    Set objCellTwo = objWSheet.Cells(plngRowTwo, pintColumnTwo)
    
    If Not objCellOne.MergeCells Then
        objCellTwo.Value = "Months"
    Else
        Set objMergedRange = objCellOne.MergeArea
        Select Case True
            Case objMergedRange.Column = pintColumnOne And objMergedRange.Row = plngRowOne And objMergedRange.Rows.Count = pintMergedCountOne
                objCellTwo.Value = "Quarters"
            Case objMergedRange.Column = pintColumnOne And objMergedRange.Row = plngRowOne And objMergedRange.Rows.Count = pintMergedCountTwo
                objCellTwo.Value = "Year"
        End Select
    End If
        
    Set objWSheet = Nothing
    Set objCellOne = Nothing
    Set objCellTwo = Nothing
    Set objMergedRange = Nothing
    
End Sub
0
14 / 14 / 2
Регистрация: 23.03.2010
Сообщений: 635
26.06.2006, 22:14
Что-то я не понял, какие ячейки у тебя объединяются: в строке 1 или в столбце 1 ? Из первого описания - вроде бы в строке... Впрочем, неважно: в любом случае, наверное, надо сосчитать кол-во объединённых ячеек? Тогда так:
Visual Basic
1
2
3
4
5
6
7
Dim oMyCell As Range
Set oMyCell = Cells(5, 15)
Select Case Cells(1, 1).MergeArea.Count
    Case 1: oMyCell = "Month"
    Case 3: oMyCell = "Quarter"
    Case 12: oMyCell = "Year"
End Select
Дополнительно, для предотвращения ошибки, можно проверить MergeArea на кол-во содержащихся строк или столбцов (Cells(1, 1).MergeArea.Rows.Count).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.06.2006, 22:14
Помогаю со студенческими работами здесь

N разных станков объединены в конвейер.
N разных станков об*еденены в конвеэр. Есть N работников. Задана матрица C, где C продуктивность i-ого работника на j-ом станке....

нужно цифры из ячейки правого столбца дописать к цифрам из соседней ячейки левого столбца
Суть проблемы в следующем: есть два столбца с цифрами, нужно цифры из ячейки правого столбца дописать к цифрам из соседней ячейки левого...

Получение коллекций из элементов коллекции, которые будут объединены по какому-то свойству
Здравствуйте. Подскажите новичку. Есть коллекция элементов с определенными свойствами. Как можно и можно ли вообще, создать из этой...

Проверить ячейки на значение
Ребята помогите найти решение простой задаче (у меня она не решается). Нужно проверить ячейки на значение 1. Если число = от 0,1 ...

Проверить значение части ячейки
Здравствуйте. Такой вопрос, есть ячейка содержащия в себе информацию. обычно это 566556 t115675 tk46732 tf56567 мне...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru