J'ai ici le code d'échantillon de la manière dont le numéro d'identification d'auto-incrément automatique et la sortie d'échantillon du programme
Chaque fois que j'entre un nouvel enregistrement pour la date limite et le champ Soumis, l'ID devrait automatiquement augmenter en fonction de la dernière carte d'identité insérée. P> Comme vous le constatez, le premier identifiant est ABC-001 et il saute soudainement dans ABC-003 au lieu d'ABC-002. P> Comme je suppose que c'est peut-être la raison, il suit la rangée des données qui sont pourquoi, après ABC-001, il apparaît comme ABC-003 Parce que ce numéro d'identification est la rangée n ° 3 p> y a-t-il un moyen d'obtenir le dernier identifiant inséré et d'être une base pour générer un nouvel identifiant? P> P>
p>
3 Réponses :
Changer à p>
C'est ainsi que je vais programmer cette tâche: prenez simplement la dernière utilisation et ajoutez 1.
Sub AddData()
Dim Ws As Worksheet
Dim AbcID As Range
Dim Deadline As Range
Dim Submitted As Range
Dim AbcNum As Integer
Set Ws = ThisWorkbook.Worksheets("Sheet3") 'define worksheet
With Ws
Set AbcID = .Cells(.Rows.Count, "A").End(xlUp) 'last used
Set Deadline = .Range("H1") 'define deadline cell
Set Submitted = .Range("H3") 'define submitted cell
End With
With AbcID
If .Row > 1 Then AbcNum = Val(.Value)
Set AbcID = .Offset(1)
End With
With AbcID
.Value = AbcNum + 1
.NumberFormat = """ABC""" & "-000"
.Offset(0, 1).Value = Deadline.Value
.Offset(0, 2).Value = Submitted.Value
End With
End Sub
La première réponse était un téléphone portable. Votre "nrow" est le numéro d'origine plus un. Vous devez donc soustraire 1 à nouveau. Pour les résultats corrects, vous devez définir le chiffre sur 3 chiffres. Si vous avez plus de 10 ans et plus de 100 ans, vous pouvez dire la différence. Il suffit de concaténer que les caractères (00 et 1) entraîneront des résultats différents plus tard.
ws.Cells(nRow, "A").Value = "ABC-" & Format(nRow - 1, "000")