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列目から数の生成を開始します。
改変を見直してお勧めします。
ありがとうございました。
に以下の行
を変更する必要があります。 –
あなたの質問によると、5行目のseq番号が必要です。このコードは、行5(E5)から数値を生成し始めます。 – sn152
異なる結果が予想される場合は、質問で説明してください。 – sn152