2016-09-07 13 views
-3

ユーザーがデータを挿入でき、データがB列のMに挿入されるユーザーフォームがあります。ワークシートまたはdataformが入力するたびに列Aを記入する「RD 00001」で始まるシリアル番号を自動的に記入するためのuserform。誰かに私にアイデアを与えてください。私のユーザーフォームが列Bのデータを入力した後、列Aの自動シリアル番号へのVBAコード

+0

[静的変数を使用するタイミング](http://stackoverflow.com/documentation/vba/877/declaring-variables/16978/when-to-use-a-static-variable#t=201609070306389229598)を参照してください。 – Comintern

+0

_ "私はコードが必要です..." _はこのサイトの仕組みではありません。あなた自身の努力を示し、特定の問題について質問してください。 [質問] – JimHawkins

+0

を参照してください間違った言葉を申し訳ありません。私は私の努力を示すために私のuserformコードを入れなければなりませんか?私はちょうどシリアル番号部分を始める方法を知らない.Newbie here.Notコーディングに慣れていない – RayZa

答えて

0

このコードの背後にあるコードは、非常にシンプルで、ヘッダー行であるRow 1という空白のシートから開始するように設計されています。ダイナミックなので、基本的にプラグアンドプレイです。あなたが他のデータに入力するために持っているコードを使って、サブを呼び出してください。

Sub SerialCode() 
    Dim ws As Worksheet 
    Dim lastSerial, digits, i As Integer 
    Dim nextRow, lastRow As Long 
    Dim newSerial As String 

    Set ws = ThisWorkbook.Sheets(1) 
    nextRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row + 1 'Finds the last row in A 
    lastRow = nextRow - 1 
    newSerial = "" 'set value of our string blank 

    If (nextRow - 1) < 2 Then 'If statement to catch if there's only a header 
     lastSerial = 0 
    Else: lastSerial = CInt(Replace(ws.Range("A" & lastRow).Value, "RD ", "")) 
    End If 

    lastSerial = lastSerial + 1 
    digits = 6 - Len(lastSerial) 'how many 0's are there 

    For i = 1 To digits 
     newSerial = newSerial & "0" 'start building the string with 0's 
    Next i 

    newSerial = "RD " & newSerial & lastSerial 'concatenate the serial code 
    ws.Range("A" & nextRow).Value = newSerial 
End Sub 

注:あなたが入力した他のデータを、あなたの最後の行を見つけるために持っているものは何でも、あなたの最後の行とこのサブの最後の行が同じであることを確認してください。

+0

私はユーザーがフォームのsubmit button.butをクリックした後に自動的に表示されるコードで作業していましたが、ここでコードをアップロードすることはできません。 – RayZa

+0

私のコードをモジュールに入れたら(module1と呼ぶことができます)、最後にbutton_click()サブの 'Call Module1.SerialCode'を挿入します。あるいは、このコードをUserFormコードに入れて、単に 'Call SerialCode'を呼び出すこともできます。どちらの方法でも同じことが達成されます。 – Tyeler

+0

2番目のデータが入力されたときに 'Else:lastSerial = CInt(Replace(ws.Range( "A"&lastRow)。Value、 "RD"、 "))'型の不一致が発生しました – RayZa

関連する問題