アプリ版:「スタンプのみでお礼する」機能のリリースについて

A列には数字と特定の文字列(例:AAAA)が入力されている状態です.この状態で以下の例のように文字列の末尾に連番を自動で入力し,さらにB列の値が等しい場合は同じ連番を入力する方法を教えて下さい.よろしくお願いします
A B
1111 100
2222 200
AAAA-01 300
2222 200
AAAA-02 200
AAAA-01 300


A 回答 (1件)

こんにちわ


標準モジュールで、実行してください。


Sub 文字列の末尾に連番を自動で入力B列の値が等しい場合は同じ連番を入力()
Dim maxRow As Long
Dim i As Long, j As Long
Dim myDic As Object, myKey
Dim Temp, TempArray
Dim str1 As String, str2 As String, str3 As String
Const CstAAA As String = "AAAA,BBBB,ABCD"
'Const CstAAA As String = "AAAA"
'特別な文字列が一つしかない時は下、複数ある時は上


Set myDic = CreateObject("Scripting.Dictionary")
TempArray = Split(CstAAA, ",")
For Each Temp In TempArray
myDic(Temp) = 0
Next Temp


With Worksheets("Sheet3") 'シート名は、実際の物にする
maxRow = .Cells(Rows.Count, "A").End(xlUp).Row
For i = 1 To maxRow
str1 = .Cells(i, 1).Value
If myDic.exists(str1) Then
str2 = .Cells(i, 2).Value
str3 = str1 & "/" & str2
If Not myDic.exists(str3) Then
j = myDic(str1) + 1
myDic(str1) = j
myDic(str3) = j
End If
.Cells(i, 1).Value = str1 & "_" & Format(myDic(str3), "00")
End If
Next i
End With
End Sub


解らないことがあったら
excel vba xxxxで検索してください。
例 excel vba exists [検索]
    • good
    • 0
この回答へのお礼

回答ありがとうございます.
上記のマクロ問題なく動きました.助かりました本当にありがとうございます.

お礼日時:2016/08/28 18:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!