Объединение ранее объединенных ячеек

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Mariya
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 28.02.2006 (Вт) 15:30

Объединение ранее объединенных ячеек

Сообщение Mariya » 28.02.2006 (Вт) 16:47

Здравствуйте. Возник такой вопрос.
В шаблоне диапазону присвоено имя. В диапазоне ячейки строк - объединенные. Как мне узнать практическое количество ячеек в строке? Если я пишу

Dim Test As Range
Dim Max_i As Integer
Set Test = ActiveSheet.Range("Part")
Max_i = Test.Columns.Count

то выдается число ячеек до объединения, т.е. фактическое подпольное.

А еще было бы совсем замечательно, если бы вы мне подсказали, как сделать так, чтобы, допустим, проверялось содержимое третьей ячейки строки, и если бы она была пустая, то объединялись все ячейки строки в этом самом злополучном диапазоне Part, с которым я вожусь уже второй день (

Когда я пытаюсь обратиться к объединенной ячейке по адресу первой из тех, из которых она состоит, - выдается ошибка.

Заранее гигантское спасибо за любую помощь. Не знаю, понятно ли обрисовала свою проблему, но все же...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Re: Объединение ранее объединенных ячеек

Сообщение GSerg » 28.02.2006 (Вт) 18:10

Mariya писал(а):Когда я пытаюсь обратиться к объединенной ячейке по адресу первой из тех, из которых она состоит, - выдается ошибка.

А между тем это правильно.

Как обращаемся?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Mariya
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 28.02.2006 (Вт) 15:30

Re: Объединение ранее объединенных ячеек

Сообщение Mariya » 01.03.2006 (Ср) 10:28

GSerg писал(а):А между тем это правильно.
Как обращаемся?


С обращением по адресу первой ячейки я уже разобралась, спасибо.
Но все-таки очень интересует, возможно ли обращение к объединенной ячейке внутри диапазона по какому-нибудь относительному адресу (чтобы был ряд не, допустим, 1, 4, 15, 52, а нормальное 1, 2, 3, 4)?.. Или хотя бы как можно вычислить адрес этой самой первой ячейки, по которому производить обращение?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 01.03.2006 (Ср) 16:26

В случае сложного объединения может быть непонятно даже в каком направлении считать... в тривиальном случае чё-нить вроде

Код: Выделить всё
Public Function CellFromNumber(ByVal r As Excel.Range, ByVal num As Long) As Excel.Range
  Dim t As Long
 
  For num = 1 To num
    t = t + r.Cells(t + 1).MergeArea.Columns.Count
  Next
 
  Set CellFromNumber = r.Cells(t)
End Function
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Mariya
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 28.02.2006 (Вт) 15:30

Сообщение Mariya » 01.03.2006 (Ср) 16:30

Спасибо. Поэкспериментирую.


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 132

    TopList