Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2333 / 13646 ツリー ←次へ | 前へ→

【68673】オートフィタ―の連続処理に連番を振る Yoshi 11/4/4(月) 16:59 質問[未読]
【68674】Re:オートフィタ―の連続処理に連番を振る kanabun 11/4/4(月) 18:28 発言[未読]
【68675】Re:オートフィタ―の連続処理に連番を振る kanabun 11/4/4(月) 18:53 発言[未読]
【68676】Re:オートフィタ―の連続処理に連番を振る Yoshi 11/4/4(月) 20:26 お礼[未読]

【68673】オートフィタ―の連続処理に連番を振る
質問  Yoshi  - 11/4/4(月) 16:59 -

引用なし
パスワード
   項目1 項目2・・・・








項目1において同じものに対して連番を振りたいのですが…
この例ではA1・A2・A3
次はB1
その次はC1・C2・C3
と内容が異なれば連番を1から順次付けたいのですが
良い方法があれば教えてください。

項目内容が異なれば
変数kを1に戻したいのですが、うまくいきません。よろしくお願いします。
Sub test()
Dim i As Long, k As Long, LstRow As Long
LstRow = Cells(Rows.Count, 1).End(xlUp).Row
k = 1
For i = 1 To LstRow - 1
 If Cells(i, 1) <> Cells(i + 1, 1) Then
   Cells(i, 1).AutoFilter Field:=1, Criteria1:=Cells(i + 1, 1).Value
   Cells(i + 1, 1) = Cells(i + 1, 1) & k
       k = k + 1
  Else
    k = 1
  End If
Next
Cells(i, 1).AutoFilter
End Sub

【68674】Re:オートフィタ―の連続処理に連番を振る
発言  kanabun  - 11/4/4(月) 18:28 -

引用なし
パスワード
   ▼Yoshi さん:
こんにちは〜

>項目1において同じものに対して連番を振りたいのですが…

えっと、AutoFilterではなくて、
Dictionaryです。
Sortされていなくてもかまいません。

Sub Try1_連番()
 Dim i As Long, k As Long
 Dim r As Range
 Dim s As String, v
 Dim dic As Object
 
 Set dic = CreateObject("Scripting.Dictionary")
 Set r = Range("A2", Cells(Rows.Count, 1).End(xlUp))
 v = r.Value
 For i = 1 To UBound(v)
   s = v(i, 1)
   dic(s) = dic(s) + 1
   v(i, 1) = s & dic(s)
 Next
 r.Offset(, 1).Value = v
 
End Sub

【68675】Re:オートフィタ―の連続処理に連番を振る
発言  kanabun  - 11/4/4(月) 18:53 -

引用なし
パスワード
   Sortされていて、単純に上と比較していけばよいのなら
こうですかね?

Sub Try2()
 Dim i As Long, k As Long
 Dim r As Range
 Dim s As String, v, u
 
 Set r = Range("A2", Cells(Rows.Count, 1).End(xlUp))
 v = r.Value
 ReDim u(1 To UBound(v), 0)
 k = 1
 u(1, 0) = v(1, 1) & k
 For i = 2 To UBound(v)
   If v(i, 1) = v(i - 1, 1) Then
     k = k + 1
   Else
     k = 1
   End If
   u(i, 0) = v(i, 1) & k
 Next
 r.Offset(, 1).Value = u
End Sub

【68676】Re:オートフィタ―の連続処理に連番を振る
お礼  Yoshi  - 11/4/4(月) 20:26 -

引用なし
パスワード
   ▼kanabun さん:

ありがとうございました。
あの難しいDictionaryを使う以外は無いのですね。
オートフィルターの繰り返しで出来るかと思いましたが・・・
じっくり勉強させていただきます。

本当にありがとうございました。

2333 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free