Объединеннные ячейки

Программирование на Visual Basic for Applications
corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Объединеннные ячейки

Сообщение corgi » 03.03.2004 (Ср) 12:30

у меня на листе распологается форма, ну и соответственно некоторые ячейки объеденены в целях красивости формы, тут появилась поблема как пройтись по всем ячейкам, только объединенные должны проходится тоже только один раз :?: :roll: :roll:
Ничто так не ограничивает полёт мысли программиста, как компилятор

Ilya Vasilyev
Постоялец
Постоялец
 
Сообщения: 820
Зарегистрирован: 06.08.2002 (Вт) 5:36
Откуда: Russia, Omsk

Сообщение Ilya Vasilyev » 03.03.2004 (Ср) 13:25

Допустим объединены A1 и B1, значение = "Тест"
смотрим
msgbox cells(1,1).value 'тест
msgbox cells(1,2).value 'тест
отсюда мораль: если значение следующей ячейки равно предыдущей - ячейки объединены
Изображение
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 03.03.2004 (Ср) 16:26

Коряво и не 100%
Код: Выделить всё
Set ma = Range("a3").MergeArea
If Range("a3").MergeCells Then
    ma.Cells(1, 1).Value = "42"
End If
Lasciate ogni speranza, voi ch'entrate.

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 03.03.2004 (Ср) 20:01

2Ilya Vasilyev ты не прав могу тебе сказать точно, в объединенных ячейках данные хранятся в левой верхней :idea: , т.е.
msgbox cells(1,1).value ="тест"
msgbox cells(1,2).value =""
2alibek честно говоря не понял идею :oops:
Ничто так не ограничивает полёт мысли программиста, как компилятор

Tanya
Обычный пользователь
Обычный пользователь
 
Сообщения: 98
Зарегистрирован: 03.03.2004 (Ср) 21:41
Откуда: Беларусь, Минск

Сообщение Tanya » 03.03.2004 (Ср) 21:48

Если я правильно поняла, и если это еще нужно

Код: Выделить всё
Sub nnn()
Dim Rng As Range, i As Integer, j As Byte
Set Rng = ActiveSheet.UsedRange
With Rng
  For i = .Row To .Rows.Count + .Row - 1
    For j = .Column To .Columns.Count + .Column - 1
      If Cells(i, j).MergeCells Then 'объединенная ячейка
        With Cells(i, j).MergeArea
          If j = .Column Then
            If i = .Row Then
              'обработка содержимого ячейки, допустим
              Debug.Print Cells(i, j).Address
            End If
            j = .Column + .Columns.Count - 1
          End If
        End With
      Else
        'обработка содержимого ячейки, допустим
        Debug.Print Cells(i, j).Address
      End If
    Next j
  Next i
End With
End Sub

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 03.03.2004 (Ср) 22:58

оно самое :roll: :roll: :D Спасибо :!: :!: :!:
Ничто так не ограничивает полёт мысли программиста, как компилятор


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 102

    TopList