Excel VBA質問箱 IV

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

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


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

【47740】連番を振りたい marron2 07/3/21(水) 12:58 質問[未読]
【47741】Re:連番を振りたい Masako 07/3/21(水) 13:21 回答[未読]
【47743】Re:連番を振りたい Kein 07/3/21(水) 14:13 回答[未読]
【47747】Re:連番を振りたい Kein 07/3/21(水) 14:40 発言[未読]
【47745】Re:連番を振りたい marron2 07/3/21(水) 14:35 お礼[未読]

【47740】連番を振りたい
質問  marron2  - 07/3/21(水) 12:58 -

引用なし
パスワード
   下に複数セルのどちらかに数値があれば、連番を振るというのがありましたが、
A列に値があれば、B列に連番を振るというのに
アレンジしようと思ったのですが、できません。
A列には、予め関数が入っていて、
関数の条件に合えば、別シートのセルを参照するというものです。

  A列   B列
 項目名 項目名
  AC8   1

  BB4   2
  SA6   3

【47741】Re:連番を振りたい
回答  Masako  - 07/3/21(水) 13:21 -

引用なし
パスワード
   ▼marron2 さん:
こんな感じで出来ると思います。試して・・・みてください
>
>  A列   B列
> 項目名 項目名
>  AC8   1
>
>  BB4   2
>  SA6   3

A列になんらかがあれば連番をB列に入れると判断しますと
ない場合は入れない(連番を加算させないようにする)

Sub test()
Dim i As Integer
k = 1
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
  If Cells(i, 1) <> "" Then
    Cells(i, 1).Offset(, 1) = k
  End If
  If Cells(i, 1) = "" Then
    k = k - 1
  End If
k = k + 1
Next i
End Sub

【47743】Re:連番を振りたい
回答  Kein  - 07/3/21(水) 14:13 -

引用なし
パスワード
   数式を入れるだけで簡単に出来ます。B1に =IF($A1<>"",COUNTA($A$1:$A1),"")
と入力して、A列の最終入力行までフィルコピーします。
これをマクロでやるなら、コードは・・

With Range("A1", Range("A65536").End(xlUp))
  .Formula = "=IF($A1<>"""",COUNTA($A$1:$A1),"""")"
  .Value = .Value
End With

【47745】Re:連番を振りたい
お礼  marron2  - 07/3/21(水) 14:35 -

引用なし
パスワード
   Masako様、Kein様、できました!
即答いただいて、ただただ驚きと感謝ですm(_ _)m
超初心者ですが、私もこちらでアドバイスができるくらいになれるよう、
日々勉強していきたいと思います。
ありがとうございました。

【47747】Re:連番を振りたい
発言  Kein  - 07/3/21(水) 14:40 -

引用なし
パスワード
   あ、すいません。訂正します。
>With Range("A1", Range("A65536").End(xlUp))


With Range("A1", Range("A65536").End(xlUp)).Offset(, 1)

失礼しました。

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