Excel VBA質問箱 IV

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

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


49771 / 76732 ←次へ | 前へ→

【31862】Re:【至急】MATCH関数の範囲
回答  Kein  - 05/12/1(木) 14:49 -

引用なし
パスワード
   B列の値を並べ替えるとして、以下のようなコードで C列に行番号を返すことが
できます。

Sub Test_GetRow()
  Dim i As Long
  Dim MyR As Range, C As Range
  Dim FR As Range, D As Range
 
  Application.ScreenUpdating = False
  Range("B1", Range("B65536").End(xlUp)).Sort Key1:=Columns(2), _
  Order1:=xlAscending, Header:=xlNo, Orientation:=xlSortColumns
  For i = Range("B65536").End(xlUp).Row To 2 Step -1
   If Cells(i, 2).Value <> Cells(i - 1, 2).Value Then
     Cells(i, 2).Insert xlShiftDown
   End If
  Next i
  Set MyR = Range("B:B").SpecialCells(2)
  For Each C In MyR.Areas
   If C.Count = 1 Then
     C.Offset(, 1).Value = _
     Application.Match(C.Value, Range("A:A"), 0)
   Else
     Set FR = Range("A:A") _
     .Find(C.Cells(1).Value, , xlValues, , , xlPrevious)
     For Each D In C.Offset(, 1)
      Set FR = Range("A:A").FindNext(FR)
      D.Value = FR.Row
     Next
     Set FR = Nothing
   End If
  Next
  Set MyR = Nothing
  Intersect(Range("B1", Range("B65536").End(xlUp)).SpecialCells(4) _
  .EntireRow, Range("B:C")).Delete xlShiftUp
  Application.ScreenUpdating = True
End Sub

1 hits

【31860】【至急】MATCH関数の範囲 eki 05/12/1(木) 13:47 質問
【31861】Re:【至急】MATCH関数の範囲 けんた 05/12/1(木) 14:33 回答
【31862】Re:【至急】MATCH関数の範囲 Kein 05/12/1(木) 14:49 回答
【31864】Re:【至急】MATCH関数の範囲 やま 05/12/1(木) 15:47 回答
【31865】Re:【至急】MATCH関数の範囲 eki 05/12/1(木) 15:53 お礼
【31866】Re:【至急】MATCH関数の範囲 やま 05/12/1(木) 15:57 発言
【31868】Re:【至急】MATCH関数の範囲 eki 05/12/1(木) 16:41 お礼
【31869】Re:【至急】MATCH関数の範囲 Jaka 05/12/1(木) 17:02 回答
【31876】Re:【至急】MATCH関数の範囲 bykin 05/12/1(木) 19:02 回答
【31921】Re:【至急】MATCH関数の範囲 eki 05/12/2(金) 12:35 お礼

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