Excel VBA質問箱 IV

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

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


13625 / 13644 ツリー ←次へ | 前へ→

【4543】ナンバリング くみ 03/3/26(水) 11:24 質問
【4545】Re:ナンバリング パピー 03/3/26(水) 11:45 回答
【4547】Re:ナンバリング くみ 03/3/26(水) 12:57 お礼
【4548】Re:ナンバリング くみ 03/3/26(水) 13:21 質問
【4553】Re:ナンバリング パピー 03/3/26(水) 15:36 回答
【4555】Re:ナンバリング くみ 03/3/26(水) 16:21 お礼

【4543】ナンバリング
質問  くみ  - 03/3/26(水) 11:24 -

引用なし
パスワード
   初心者です。。。
よろしくお願いします。

行き詰まってしまいまして質問します。

ワークシート「TEST」のB行にはデータが入っています。
B行に[END」が出てくるまでA行に1からナンバリングしていきます。
B行にはたまにブランクがあり、B行がブランクならばA行もブランクにします。
ブランクの次のA行にはブランクの前のナンバリングの続きを入れます。
つまり1〜5までナンバリングして、ブランクのあと6〜始まるということです。
B行の最初はB2から始まり、ここには必ずデータが入っているので
A2には1が最初から入っています。

私は
Sub ナンバリング()
  Dim TATE As Integer
  Dim YOKO As Integer
  Dim i As Integer
  Dim COUNT As Integer
  
  Set WS = Worksheets("出品")
  
  TATE = 3
  YOKO = 2
  i = 2  
  COUNT = 1
  
  WS.Range("A" & i) = COUNT
  
  'Bのセルにエンドが入るまでDO
  Do
     
  'セルBがブランクならばセルAもブランク
  If WS.Cells(TATE, YOKO) = "" Then
    i = i + 1
    WS.Range("A" & i) = ""
           
  Else
  'セルAにナンバリング
    i = i + 1
    COUNT = COUNT + 1
    WS.Range("A" & i) = COUNT
        
  End If
    TATE = TATE + 1
    
    
  Loop While WS.Cells(TATE, YOKO) = "END"
  
End Sub

と作ってみたのですが、どうしても上手く行かないのです。。。。

どうしたら上手く行くか教えて下さい。

よろしくお願いします。

【4545】Re:ナンバリング
回答  パピー  - 03/3/26(水) 11:45 -

引用なし
パスワード
   ▼くみ さん:こんにちは。
次のコードを試して見て下さい。
的を外していたらご免なさい。

Sub test()
Dim i As Long, L As Long, K As Long
  L = Cells(Rows.Count, "B").End(xlUp).Row
  K = 1
  For i = 2 To L
    If Cells(i, 2) = "END" Then Exit Sub
    If Cells(i, 2) <> "" Then
      Cells(i, 1) = K
      K = K + 1
    End If
  Next
End Sub

【4547】Re:ナンバリング
お礼  くみ  - 03/3/26(水) 12:57 -

引用なし
パスワード
   ▼パピー さん:
ありがとうございます!

出来ました!

【4548】Re:ナンバリング
質問  くみ  - 03/3/26(水) 13:21 -

引用なし
パスワード
   ▼パピー さん:
質問があります。

  L = Cells(Rows.Count, "B").End(xlUp).Row

ここの部分はどういう意味でしょうか??
xlupとかヘルプを見ても載ってなかったのです。
どいういうセルを見ているのか申し訳ありませんが
解説していただけませんか?

お手数ですが、よろしくお願いします。

【4553】Re:ナンバリング
回答  パピー  - 03/3/26(水) 15:36 -

引用なし
パスワード
   ▼くみ さん:
>
>  L = Cells(Rows.Count, "B").End(xlUp).Row
>

これは、B列のデータが書かれている最後の行番号を求めるものです。

【4555】Re:ナンバリング
お礼  くみ  - 03/3/26(水) 16:21 -

引用なし
パスワード
   ▼パピー さん:
>>
>>  L = Cells(Rows.Count, "B").End(xlUp).Row
>>
>
>これは、B列のデータが書かれている最後の行番号を求めるものです。

そうか〜。なるほど。ありがとうございました!勉強になりました。

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