0

Q.シート2からシート1の値を検索するマクロを作成するには

  1. シート1で値を検索するには、行11から1000000までの列「F」。
    • 列「C」の値を検索シート1、行11〜1000000条件「内部カラーインデックスが赤のセルのみ」
    • シート2の列「C&D」の4行目から1000000行のテーブル配列。
  2. シート1にボタンを作成し、このマクロをボタンに割り当てるには。

VBAコード

Sub VA01()
    ' CREATING SALES ORDER
    Worksheets("sheet1").Range("C11:C1000000").Select
    finalrow = Cells(Rows.Count, 3).End(xlUp).Row
    For x = 11 To finalrow
        If Cells(x, 3).Interior.ColorIndex = 3 Then
            Cells(x, 6).Select
            ActiveCell.FormulaR1C1 = "=VLOOKUP(R11C3:R1000000C3,Sheet2!R4C3:R1000000C4,2,0)"
        End If 
    Next x
End Sub

このマクロを実行すると、Excelがハングアップし、実行に時間がかかり、ボタンを作成できません。

4

1 に答える 1

0

まず、多くの時間とリソースを必要とする「選択」メソッドを失います。また、後のコードがこの選択を使用しない場合に ("C11:C1000000") 範囲を選択するのはなぜですか?次に、おそらく vlookup 部分を保持しますが、更新する必要がない場合は値のみを保持します。それは次のようになります。

Sub VA01()
' CREATING SALES ORDER
'Worksheets("sheet1").Range("C11:C1000000").Select
finalrow = Cells(Rows.Count, 3).End(xlUp).Row
For x = 11 To finalrow
    If Cells(x, 3).Interior.ColorIndex = 3 Then
        Cells(x, 6).FormulaR1C1 = "=VLOOKUP(R11C3:R1000000C3,Sheet2!R4C3:R1000000C4,2,0)"
        Cells(x, 6)=Cells(x, 6).Value
    End If 
Next x
End Sub
于 2013-01-19T15:39:19.393 に答える