Excel VBA質問箱 IV

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

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


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

【56042】位置の取得方法を教えて下さい。 質問者(初心者S) 08/5/30(金) 11:10 質問[未読]
【56045】Re:位置の取得方法を教えて下さい。 kanabun 08/5/30(金) 12:37 発言[未読]
【56052】Re:位置の取得方法を教えて下さい。 質問者(初心者S) 08/5/30(金) 14:28 お礼[未読]

【56042】位置の取得方法を教えて下さい。
質問  質問者(初心者S)  - 08/5/30(金) 11:10 -

引用なし
パスワード
   お手数ですが位置の取得方法を教えて下さい。

EXCELのシート上に
物件名:
売上時期
情報1
情報2
情報3
情報4
情報5
情報6
得意先名称
コード:得意先用コード

セルの始まり位置で、物件名:とコード:は固定
として情報はその物件により変動する。
また、1枚のシートには複数の物件を登録している場合に
ある物件は、物件名:からコード:までが何行あるか
取得したいのですが、この方法をどなたか教えて下さい。

今はIF分を使い、コード:の位置を取得して
物件名:までを変数を利用して-1行ずつして
IF分で物件名:か判定して取得していますが

シート上に複数物件がある場合うまく行かなく悩んでいる為
方法があれば教えて下さい。
宜しくお願いします。

【56045】Re:位置の取得方法を教えて下さい。
発言  kanabun  - 08/5/30(金) 12:37 -

引用なし
パスワード
   ▼質問者(初心者S) さん:
>シート上に複数物件がある場合うまく行かなく悩んでいる為
>方法があれば教えて下さい。

▼Loopのなかで Findを2回使う
 Set Row1 = 検索範囲.Find("物件名:",,xlFormulas,xlPart)
 Set Row2 = 検索範囲.Find("コード",Row1,xlFormulas,xlPart)

とか、
▼配列に入れて If文で判断でしょうか?
 ' ('A列にデータがあると仮定しています)

 Dim v, i As Long, j As Long, k As Long
 v = Range("A1", Range("A65536").End(xlUp)).Value
 For i = 1 To UBound(v)
  If v(i, 1) Like "物件名:*" Then
   For j = i + 1 To UBound(v)
    If v(j, 1) Like "コード:*" Then
      k = k + 1
      Debug.Print i; "〜"; j; "まで"; v(j, 1), "行間"; j - i
      i = j
      Exit For
    End If
   Next
  End If
 Next

【56052】Re:位置の取得方法を教えて下さい。
お礼  質問者(初心者S)  - 08/5/30(金) 14:28 -

引用なし
パスワード
   助かりました。
回答の方法で試してみます。

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