Excel VBA質問箱 IV

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

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


70266 / 76738 ←次へ | 前へ→

【10982】Re:処理速度の向上について
回答  Hirofumi E-MAIL  - 04/2/21(土) 17:57 -

引用なし
パスワード
   概ね、こんな形で元のコードと同じ様に出力しているみたいだけど
元のコードのロジックが何か変な気がします
通常は、何々以上何々未満若しくは、何々を超え何々以下の様な形に成るのに
何々以上何々以下に成っている為、最小値と最大値の行き先が変?

Public Sub Test2()

  Dim i As Long
  Dim rngScope As Range
  Dim vntKeys As Variant
  Dim vntResult As Variant
  
  Set rngScope = Range(Cells(1, "A"), Cells(65536, "A").End(xlUp))
  vntKeys = Range(Cells(1, "B"), Cells(65536, "B").End(xlUp)).Value
  ReDim vntResult(1 To UBound(vntKeys, 1), 1 To 1)
  
  For i = 1 To UBound(vntKeys, 1)
    vntResult(i, 1) = Application.Match(vntKeys(i, 1), rngScope, 1)
    If IsError(vntResult(i, 1)) Then
      vntResult(i, 1) = 2
    Else
      If vntKeys(i, 1) <> rngScope(vntResult(i, 1)) Then
        If vntResult(i, 1) + 1 <= rngScope.Rows.Count Then
          vntResult(i, 1) = vntResult(i, 1) + 1
        End If
      End If
    End If
  Next i
  Set rngScope = Nothing
  
  Cells(1, "C").Resize(UBound(vntKeys, 1)).Value = vntResult
  
End Sub

0 hits

【10968】処理速度の向上について K.C 04/2/19(木) 23:17 質問
【10969】Re:処理速度の向上について りん 04/2/20(金) 7:49 発言
【10970】Re:処理速度の向上について ichinose 04/2/20(金) 8:02 発言
【10982】Re:処理速度の向上について Hirofumi 04/2/21(土) 17:57 回答
【10986】質問と別解 Hirofumi 04/2/21(土) 21:40 回答
【10988】Re:処理速度の向上について K.C 04/2/22(日) 0:46 お礼

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