我一直在使用此代码将ID添加到ID一段时间,并且它始终可以正常工作。直到今天它开始说代码执行已被中断。
Sub AddZeroes()
'Declarations
Dim i As Long, j As Long, 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
它总是突出显示
DO WHILE LEN(ACTIVECELL.VALUE) < 7
或突出显示
LOOP
答案 0 :(得分:5)
这是Excel的一个奇怪的小错误。当你按 CTRL + BREAK 停止执行代码时会发生这种情况。那是应该出现的时候。
有时如果你用 CTRL + BREAK 停止执行,它会一直存在并不断弹出。这就是错误。 (有时它不会使用 CTRL + BREAK ,我想。)
尝试多次按 CTRL + BREAK ,尝试关闭并重新打开工作簿,尝试重新启动计算机。
关闭文件,制作副本,使用副本并查看是否仍然存在。
如果所有其他方法都失败了,您可能只需制作一个新工作簿并复制所有代码/功能。我听说过有关这种事情的恐怖故事,最后的建议是唯一的解决办法。
在代码中没有任何错误。
我想这也可能是键盘故障。键盘短路或粘滞,Excel正在接收中断命令(来自 ESC 键或 BREAK 键)。也可以试试另一台电脑。
这里只是关于从mehow
添加的代码的补充说明它应该为您提供更好的性能和更清晰的代码。 (注意:避免.Select
并改善了loop
的逻辑)
Sub AddZeroes()
Application.ScreenUpdating = False
Dim lastRow As Long, cell As Range
lastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
Range("A1:A" & lastRow).NumberFormat = "@"
For Each cell In Range("A2:A" & lastRow)
If Len(cell) < 7 Then cell = "0" & cell
Next i
Application.ScreenUpdating = True
End Sub