Excel VBA質問箱 IV

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

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


20680 / 76736 ←次へ | 前へ→

【61469】Re:データの検索
回答  りん E-MAIL  - 09/5/12(火) 3:37 -

引用なし
パスワード
   まこすけ さん、こんばんわ。

>  A  B  C           A  B  C  
>1 11  E11           1 11  E11 E11
>2 XX  22            2 XX  22  E11
>3 XX              3 XX    E11
>4                4
>5 11              5 11    E11    
>6                 6
>7 11  E22           7 11  E22 E22    
>8    33            8   33 
>9 XX              9 XX    E22
>10                10
>

>E11= 列は固定・行は固定、頭にEが必ず付き、数字は変動します
>E22= 列は固定・行は変動、頭にEが必ず付き、数字は変動します



>A列のセルに何か入力されていたら、E11とE22をC列に書き出したいのです
こういう事でしょうか?

Sub test()
  Dim r1 As Range
  Dim RR As Long, Rmax As Long, s1 As String
  'A列のデータ範囲
  With Application.ActiveSheet
   Set r1 = Application.Intersect(.Columns("A:A"), .UsedRange)
  End With
  '
  Rmax = r1.Count
  ReDim cdat(1 To Rmax, 1 To 1) As Variant
  '
  'B列にExxが出たら入れ替え?
  s1 = "E11" '一応初期値
  For RR = 1 To Rmax
   'A列に何か入ってたら
   If r1.Cells(RR).Value <> "" Then
     'B列がExxだったら入れ替え?
     With r1.Cells(RR).Offset(0, 1)
      If Left(.Text, 1) = "E" Then s1 = .Text
     End With
     'C列に入れる文字列
     cdat(RR, 1) = s1
   End If
  Next
  '一括で範囲に渡す。
  r1.Offset(0, 2).Value = cdat()
  '
  Erase cdat
  Set r1 = Nothing
End Sub
0 hits

【61468】データの検索 まこすけ 09/5/12(火) 0:46 質問
【61469】Re:データの検索 りん 09/5/12(火) 3:37 回答
【61470】Re:データの検索 まこすけ 09/5/12(火) 6:57 発言
【61471】Re:データの検索 りん 09/5/12(火) 7:24 発言
【61476】Re:データの検索 まこすけ 09/5/12(火) 20:01 お礼

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