Пытаюсь сделать нумерацию строк не учитывая объединенные ячейки, подскажите что я делаю не так? И объясните пожалуйста как правильно ставить перенос строки и разделитель ":", т. к. ставлю больше по наитию, чем по знанию....(((
Код
Sub dfs()
Dim i%, n%, ilastrow&, sh As Object
Set sh = ThisWorkbook.Worksheets("Лист1")
n = 1
ilastrow = sh.Cells(Rows.Count, 3).End(xlUp).Row
'ilastrow = ilastrow + 1
For i = 8 To ilastrow
If .Cells(i, 2).MergeCells = True Then i = i + 1: _
ElseIf sh.Cells(i, 2).MergeCells = False Then sh.Cells(i, 2) = n: n = n + 1: _
With sh.Cells(i, 2): _
.Font.Bold = False: _
.HorizontalAlignment = xlCenter: _
.VerticalAlignment = xlCenter: _
End With
End If
Next
End Sub
чтобы сказать что Вы делаете не так, нужно понимать что Вы делаете вообще, т.е. нужно знать задачу, которая требует решения. из того что есть в наличие что сделано не так? не так выбрано название темы это название ни о чем, ответы (если они будут) будут ровно о том же - НИ О ЧЕМ. полагаете это сдвинет проблему с места? (Вы сильно продвинулись к решению, прочитав мой ответ?)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Sub dfs()
Dim i%, n%, ilastrow&
n = 1
ilastrow = Cells(Rows.Count, 3).End(xlUp).Row
For i = 8 To ilastrow
If Cells(i, 2).MergeCells = False Then
Cells(i, 2) = n: n = n + 1
With Cells(i, 2)
.Font.Bold = False
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
End If
Next
End Sub
tsutse, а что за переменная vm? Откуда она взялась? У Вас дебагер не ругается? Не подсказывает ничего? Если вторая таблица - это желаемый результат, то зачем третья таблица?
Ещё момент: у Вас неправильно объявлены переменные: i и n - Integer, а ilastrow - Long. Подумайте, что случится, если переменная номера последней строки будет больше 65 536?