私は議論のトピックの一意のIDを生成しようとしています。データは以下のようになりますので:Excel VBA固有IDジェネレータ
Status ID Topic Commentary
Open FIL-1 FILM
Open FIL-2 FILM
Closed LAN-1 LANG.
Open LAN-2 LANG.
アイデアは、そのときに、新しい行にかかわらず、それが上か、私は次のIDを見つけるために、VBAを使用して、最後のユニークIDの下に追加されたかどうかのです。上の例では、トピックのLANGを上の行に追加する場合です。 LAN-2は最も新しいIDであり、LAN-3になるには+1であることがわかります。トピックは以下のコードを持つ全て同じであったとき
I(トピックがすべて「FIL」だったが、今複数のトピックがあります)、この作業を得た:
Private Function getNextID() As String
Dim row As Integer
Dim currentID As Integer
currentID = 0
' Loop round rows
For row = MIN_ROW To MAX_ROW
' Only use rows which are not blank
If Worksheets(DISCUSS).cells(row, ID).Value <> "" Then
If Mid$(Worksheets(DISCUSS).cells(row, ID).Value, InStr(3, Worksheets(DISCUSS).cells(row, ID).Value, "-") + 1) > currentID Then
currentID = Mid$(Worksheets(DISCUSS).cells(row, ID).Value, InStr(3, Worksheets(DISCUSS).cells(row, ID).Value, "-") + 1)
End If
End If
Next row
getNextID = "FIL" & "-" & currentID + 1
End Function
誰もが、私は、配列を設定することができます方法を知っていますトピックで使用されている略語をIDで使用して、すでに書かれたコードを使用して、配列内の略語を使用して同じプロセスを繰り返して、特定のトピックの次のIDを追加します。
私はうまく動かそうとしていた。乾杯ゲイリー! – Raabot