2017-09-11 11 views
0

はVBAの新機能ですが、Excelで何らかのDBを作成する必要があります。VBAを使用すると処理が容易になると思いました。IDからIDを作成する

私は、5つの編集と、入力されたデータをドキュメント内のワークシートテーブルにコピーするボタンを持つフォームを作成しました。

.Cells(lRow, 3).Value = Me.oname.Value 
.Cells(lRow, 4).Value = Me.ojahr.Value 
.Cells(lRow, 5).Value = Me.oraum.Value 
.Cells(lRow, 6).Value = Me.oregal.Value 
.Cells(lRow, 7).Value = Me.osegment.Value 

ここで追加したいのは、これらの値の3つと連続番号から「一意の」IDを作成する方法です。 XYZ-0001 (X、Y、Z、数値である)

これは私がワークシートにデータをコピーする方法はかなりある、と私は

を使用しようとしたよう

ベストな方法は、それを持っているだろう残念ながら日付値(これを修正するための任意のアイデア?)として返します

.Cells(lRow, 8).Value = Me.osegment.Value & "-" & Me.osegment.Value & "-" & Me.osegment.Value 

したがって、私は

.Cells(lRow, 8).Value = Me.osegment.Value & "_" & Me.osegment.Value & "_" & Me.osegment.Value 
にそれを変更

はうまくいきますが、意図したとおりに( " - "バージョンが良く見えます)、唯一欠けているのは "0001"のような一意の識別子です。

だから私のアイデアは

.Cells(lRow, 8).Value = Me.osegment.Value & "_" & Me.osegment.Value & "_" & Me.osegment.Value 

の組み合わせのためにと、この組み合わせは_0001を追加し、前に存在していませんでしかどうかを確認する「IF」機能のsomekindを実行することです。 それ以外の場合は、既存のX_Y_Z_000Xの値をチェックし、+1を使用します。

どんな種類のヘルプも高く評価されています。 :)

あなたはこのコードをしようとする場合があります

よろしく

答えて

0

Dim ONameVal As String 
Dim OJahrVal As String 
Dim OJaumVal As String 
Dim ORegalVal As String 
Dim OSegmentVal As String 

ONameVal = Me.oname.Value 
OJahrVal = Me.ojahr.Value 
OJaumVal = Me.oraum.Value 
ORegalVal = Me.oregal.Value 
OSegmentVal = Me.osegment.Value 

.Cells(lRow, 3).Value = ONameVal 
.Cells(lRow, 4).Value = OJahrVal 
.Cells(lRow, 5).Value = OJaumVal 
.Cells(lRow, 6).Value = ORegalVal 
.Cells(lRow, 7).Value = OSegmentVal 

.Cells(lRow, 8).Value = OSegmentVal & "-" & OSegmentVal & "-" & OSegmentVal 

は、このヘルプを願っています。

+0

お返事ありがとうございました 私はそれを試してみましたが、時にはExcelがまだ日付のように処理しているので、セパレータを " - "から " - "に変更しました。今はうまく動作します。 さらに欠けているのは、一種の一意の識別子です。いくつかの種類のアーカイブ構造を作成しなければなりません。たとえば、部屋(x)、シェルフ(y)、シェルフセグメント(z)で項目を識別したいと思っています。2.3.1 一意性... 結果は2.3.1-0001のように見えます。 私はどんな助けにも感謝します<3 – sqrcbc

関連する問題