Цитата: А может всё таки лучше с абсолютным типом? как вы думаете? или в моей задаче это без разницы?
Подогнал всё как сказали и оставил ячейки с абсолютным типом но оказалось что это для моей таблицы не совсем работает. Заметил такое в C18 при относительной ссылке =СУММ($C$4:$C$16) стало только суммировать столбец C, когда при таком =СУММ(C4:E16) варианте, суммировались столбцы C, D, E. аааа только сейчас заметил, он опять изменил формулу с =СУММ(C4:E16) на =СУММ($C$4:$C$16) ну думаю ок, сам поправил на такое =СУММ($C$4:$E$16) но когда отпускаешь или поднимаешь строки он опять возвращает в такое =СУММ($C$4:$C$16) положение. думаю все таки вставить ваш код который закрепляет к относительным ссылкам. что скажете ув.
vlth?
Добавлено: Цитата: Sniper1, кстати, посмотрел на то, что Вам сделал Maximus777 и увидел у себя шероховатость: лучше переписать Sub subHL, а fncHasHypLnk при этом за ненадобностью удалить
Код:
Переписал, теперь выходит какая то ошибка, скорей всего не правильно что то переписал наверное.
Гляньте Цитата: Кстати, принципиальная разница, в том, что сделал Maximus, и в том, что я, следующая:
1. Он выбрал вариант, в котором временная строка для обмена форматами при ротации формируется за пределами таблицы - ниже каких-либо данных на листе. Я решил делать то же самое в пределах таблицы, поэтому мне в конце-концов пришлось бороться с последствиями такого выбора.
2. У меня перемещается строка таблицы, у него - строка листа.
Это менее существенное отличие, чем первое.
3. Есть кое-что ещё, но с точки зрения возможности приведения вариантов к единому знаменателю, это вообще несущественно.
Т.е. в результате способы достижения цели фактически идентичны. При этом и время выполнения кода (замерял грубо - с помощю Timer 'а) не отличается, хотя, по логике, у моего "оппонента" он должен работать быстрее.
Эт мне ёще предстоит в конце выбирать на каком из ваших решений буду работать когда доделаем всё. Замечу что оба решения мне очень нравятся так что будет не легко в выборе
Добавлено: Цитата: Переписал, теперь выходит какая то ошибка, скорей всего не правильно что то переписал наверное. Гляньте
Вроде догнал где ошибка, должно быть так?
Код: Private Sub subHL(oHLc As Range)
Dim r As Range, c As Range
Set r = Range(oHLc.Offset(-1), oHLc.Offset(1))
For Each c In r.Cells
With c.Font
If c.Hyperlinks.Count > 0 Then
.ColorIndex = 5
.Underline = xlUnderlineStyleSingle
.Bold = False
Else
.ColorIndex = xlAutomatic
.Underline = xlUnderlineStyleNone
.Bold = True
End If
End With
Next
End Sub
'Private Function fncHasHypLnk(c As Range) As Boolean
'On Error Resume Next
'fncHasHypLnk = Not IsEmpty(c.Hyperlinks(1).Address)
'End Function