У меня есть следующий макрос, который добавляет 0s к идентификационным номерам, пока они не будут содержать 7 чисел. Я использовал его бесчисленное количество раз, и он всегда работал без сбоев, пока сегодня он не начал работать, и часть кода For i = 1 To endrow - 1
подсвечивается каждый раз, и я не могу отладить проблему. Весь код.Ошибка кода Excel VBA
Sub AddZeroes()
'Declarations
Dim i As Integer, j As Integer, endrow As Long
'Converts the A column format to Text format
Application.ScreenUpdating = False
Columns("A:A").Select
Selection.NumberFormat = "@"
'finds the bottom most row
endrow = ActiveSheet.Range("A1").End(xlDown).Row
'selects the top cell in column A
ActiveSheet.Range("A1").Select
'loop to move from cell to cell
For i = 1 To endrow - 1
'Moves the cell down 1. Assumes there's a header row so really starts at row 2
ActiveCell.Offset(1, 0).Select
'The Do-While loop keeps adding zeroes to the front of the cell value until it hits a length of 7
Do While Len(ActiveCell.Value) < 7
ActiveCell.Value = "0" & ActiveCell.Value
Loop
Next i
Application.ScreenUpdating = True
End Sub
Какова ценность ** endrow ** в точке, которую она останавливает? Кроме того, если формат предназначен только для отображения, тогда вся процедура может быть заменена на «Столбцы» («A: A»). NumberFormat = «0000000» ' – SeanC
. Последняя часть - это остановка в последней строке, обычно он переходил бы на одну дополнительную строку вниз и добавлял ячейку всего 7 0. -1 указывает, что он останавливается в самой последней ячейке. – user1958651
, когда код подсвечивается, чтобы указать на ошибку, что это значение ** endrow ** в этой точке? – SeanC