2016-12-29 7 views
0

私のコードには小さな問題があります。コードは以下の通りです。ExcelのVBAコードを生成する接頭辞付きシーケンス番号

Private Sub CommandButton1_Click() 
Dim Rng As Range, Dn As Range, n As Long 
Dim pType As String 
Dim oMax As Long 
Set Rng = Range(Range("E1"), Range("E" & Rows.Count).End(xlUp)) 
Const StartNum = 1 
    pType = Me.TextBox1.Value 
if pType = vbNullString Then MsgBox "Please Select Option from Combo Box": Exit Sub 


With CreateObject("scripting.dictionary") 
.CompareMode = vbTextCompare 
For Each Dn In Rng 
If Left(Dn.Value, 1) = pType Then 
If Not .Exists(Dn.Value) Then 
    .Add Dn.Value, Mid(Dn, 2) 
oMax = Application.Max(.Item(Dn.Value), Mid(Dn, 2)) 
Else 
    MsgBox "Number Exists:-" & Dn.Value 
End If 
End If 
Next 
If .Count = 0 Then 
Range("E" & Rng.Count + 1) = pType & StartNum 
Else 
Range("E" & Rng.Count + 1) = pType & oMax + 1 
End If 
End With 

End Sub 

このコードは、私が開始行iがE5にE1の範囲の値を変更しようとしたが、それが機能しなかった5であるべきであるたいながら、2列目から数の生成を開始します。

改変を見直してお勧めします。

ありがとうございました。

答えて

0

あなたはちょうど私がその始まりは、4つの行の後に生成し、その後これを行う場合は

Range("E" & Rng.Count + 4) = pType & StartNum 
+0

に以下の行

Range("E" & Rng.Count + 1) = pType & StartNum 

を変更する必要があります。 –

+0

あなたの質問によると、5行目のseq番号が必要です。このコードは、行5(E5)から数値を生成し始めます。 – sn152

+1

異なる結果が予想される場合は、質問で説明してください。 – sn152

関連する問題