0

私は次のコードを持っています、

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

そして、数字の前にゼロを追加し、それらが 7 未満の場合は 7 文字の長さになるようにテキストに変換します。RUN TIME ERROR 6 OVERFLOW というエラーが表示され続けます。今まで一日中問題なく動いていたので途方に暮れています。部分を強調し続けます:

For i = 1 To endrow - 1

何かご意見は?

4

1 に答える 1

4

この行を変更します。

Dim i As Integer, j As Integer, endrow As Long

代わりにこれにする:

Dim i As Long, j As Long, endrow As Long

整数変数は 32,767 までしか使用できません。行番号がそれよりも大きい場合は、Long を使用する必要があります。

于 2013-08-23T18:42:33.327 に答える