use*_*980 2 excel vba excel-vba
我一直在使用这段代码将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
Run Code Online (Sandbox Code Playgroud)
它总是突出显示
DO WHILE LEN(ACTIVECELL.VALUE) < 7
Run Code Online (Sandbox Code Playgroud)
或者它突出了
LOOP
Run Code Online (Sandbox Code Playgroud)
这是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
Run Code Online (Sandbox Code Playgroud)