Excel VBA質問箱 IV

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

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


47886 / 76732 ←次へ | 前へ→

【33790】1つの条件を満たせば、2つのループをぬけるようにしたい&時間短縮法は?。
質問  k  - 06/1/20(金) 17:38 -

引用なし
パスワード
   Statisさん、レスありがとうございました。

Dim k As Integer, L As Integer, Asset1 As String,ID1 As String
Dim j As Integer, Sheets1Count As Integer, r1 As Long
Dim SheetName As Variant, ArrayCounter As Integer

SheetName = Array("CASH", "FI", "EQ")
Sheets1Count = Workbooks("Jul 2005.xls").Worksheets.Count
r1 = Cells(Workbooks("Fund.xls") .Worksheets("Discrep").Rows.Count, "A").End(xlUp).Row

For j = 7 To r1
For k = j-1 To j
    Asset1 = Workbooks("Fund.xls") .Worksheets("Discrep").Range("A" & k).Value      
 For L = 1 To Sheets1Count
      For ArrayCounter = 1 To UBound(SheetName)
        If Workbooks("Jul 2005.xls").Worksheets(L).Name = SheetName(ArrayCounter) And Not Workbooks("Jul 2005.xls").Worksheets(L).Cells.Find(Asset1) Is Nothing Then
ID1 = Workbooks("Jul 2005.xls").Worksheets(L).Cells.Find(Asset1).Offset(, 2).Value
          Workbooks("Fund.xls") .Worksheets("Discrep").Range("Q" & k).Value = ID1
     Exit For
        End If
      Next ArrayCounter
      Next L
(中略)
Next k
(中略)
r1 = Cells(Workbooks("Fund.xls") .Worksheets("Discrep").Rows.Count, "A").End(xlUp).Row
  Next j

で何とか、目標に近づきました。

1番最後にr1 = Cells(Workbooks("Fund.xls") .Worksheets("Discrep").Rows.Count, "A").End(xlUp).Row
と数えなおしているのは、(中略)の部分で、Cell(j, A)に空白セルを挿入する場合があり、A列の使用している行数が毎回変わるからです。
For j = 7 To r1
For k = j-1 To j
と入れ子にしているのもそのためです。

ただ、すごく時間がかかります。検索先をCellsととしているからでしょうか。

Workbooks("Jul 2005.xls").Worksheets(L).Name = SheetName(ArrayCounter) And Not Workbooks("Jul 2005.xls").Worksheets(L).Cells.Find(Asset1) Is Nothing
というひとつの条件を満たせば、

For L = 1 To Sheets1Count
      For ArrayCounter = 1 To UBound(SheetName)
の二つのループを同時に抜けられるようにしたいのですが、どうやってコードを書いたらよいのでしょうか。

他にも時間を短縮する方法があったら教えてください。
1 hits

【33725】他のブックの複数のシートから検索。 k 06/1/19(木) 12:44 質問
【33740】Re:他のブックの複数のシートから検索。 Statis 06/1/19(木) 19:07 回答
【33790】1つの条件を満たせば、2つのループをぬける... k 06/1/20(金) 17:38 質問
【33792】Re:1つの条件を満たせば、2つのループをぬ... じゅん 06/1/20(金) 17:42 回答
【33898】Re:1つの条件を満たせば、2つのループをぬ... k 06/1/23(月) 16:07 お礼

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