• 締切済み

B列の値を参照して、A列に連番を振る方法

A・B・C列があり、A列には連番を、B列にはVLOOKUP関数が入っており、 C列には、B列の検索値が入っております。 B列は下記のVBAコードで同じ値をセル結合させています。 Sub 結合() Dim rngU As Range Dim i As Range Dim rngB As Range Dim Key As String Set rngB = Range("B2") Set rngU = Range(Range("B3") _ , Range("B6000").End(xlUp).Offset(1)) Application.DisplayAlerts = False For Each i In rngU If Not i.Text = Key Then If (Not i.Offset(-1) Is rngB) And _ (Not i Is rngB) Then Range(rngB, i.Offset(-1)).MergeCells = True End If Set rngB = i End If Key = i.Text Next i Application.DisplayAlerts = True End Sub そこで、A:3から連番を振りたいのですが、B列の決まった特定の結合セルの 隣のA列のセルもB列の決まった特定の結合セルと同数にセル結合させ、 連番を1つとしてカウントしたいのです。 また、A列にはB列同様にVLOOKUP関数が入っており、連番を振りたくないセルには 印が付くようにしています。 行数やB列の決まった特定の結合セル番地はランダムに変わるため、B列の結合セルで参照させるしか ないのかなっと思っております。 B列の特定の結合セルの値は決まっております。 上記のような処理を自動にさせるためのVBAが分かる方がいらっしゃいましたら、 是非ご教授お願いいたします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

昨日もこの質問を読んで、質問で何がしたいかつかみかねて、パスした。今見ても答えが付いてない。判りにくいからではないですか? ーー 質問をVBAコードや自分が進行中のロジックなどから離れて、模擬実例を工夫して、ABC列にデータを入れて説明されることを望みます。 ーー >B列にはVLOOKUP関数が入っており >B列の検索値が入っております。 >VBAコードで同じ値をセル結合させています。 回答者に、コードの質問でなければ、VBAコードなどなるべく判読させないこと。質問者は苦労して作り上げたかもしれないが、言葉で書けば済むのではないか。 「B列で値が同じセルはセル結合している」ではどう? ーー B列の結合後の1セルの塊を単位として、A列に連番を振りたい? 上記コードの中では、同時にそれはできない事情があるのですか? >A列にはB列同様にVLOOKUP関数が入っており、連番を振りたくないセルには印が付くようにしています。 A列に関数が既に入っていて、VBAで連番を振ると、関数は壊れてしまうが?なぜA列にVLOOKUP関数が入っているのか、そこになぜ連番を振るのか、状況がわからない。 ーー >行数やB列の決まった特定の結合セル番地はランダムに変わるため、B列の結合セルで参照させるしかないのかなっと思っております。 B列の値などが動くと、瞬時に質問の処理をやり直すなど考えているのかな。バッチ作業性と瞬時作業(イベント型)性の区別はどうですか。 変わっても、この作業を再度する仕組みも考えられるが、それなら、それでよいのでは。 >特定の結合セルの値は 「特定の」がわかりにくい。「結合済みのセル」をみて、とか。 ーー B列の結合済みのセルを見つつ(または質問上記のコードのロジックと同じものを使い)、A列に連番を振っては、都合が悪いのですか?

5ys4
質問者

お礼

imogasiさん ご指摘の通り、もう一度頭の中を整理して 再度質問させていただきます。 この度はご迷惑をおかけして申しわけありませんでした。

関連するQ&A

専門家に質問してみよう