2017-02-14 2 views
0

ここでは、Vlookupで見つかったセルに移動する必要のある「変更」ボタンをいくつか作成しました。値を変更するにはどのようにセルに移動しますか?

私は特定の範囲に入るコードしか見つけることができません。

Private Sub CommandButton6_Click() 

Dim status As Variant 

status = WorksheetFunction.VLookup(_ 
     (Sheets("Gegevens").Range("B3")), _ 
     Sheets("bestand totaal").Range("J2:W9996"), 14, False) 

End Sub 
+0

後、私はあなたが求めているのかわからないんだけどね。コードが「特定の範囲に移動」ではなく、vlookup値を返すように見えます。 ---達成しようとしていることは何ですか? –

答えて

0

あなたがstatusを見つけた後は、あなたのVLookupを通じて、あなたは値が検出されたVLookup範囲を検索するFind機能を使用することができます。

私は2つのRange変数、VLookup範囲についてRng、およびFindためRngFindを追加しました。

コード

Private Sub CommandButton6_Click() 

Dim status As Variant 
Dim Rng As Range 
Dim RngFind As Range 

Set Rng = Sheets("bestand totaal").Range("J2:W9996") 
status = WorksheetFunction.VLookup((Sheets("Gegevens").Range("B3").Value), Rng, 14, False) 

Set RngFind = Rng.Find(What:=status, LookIn:=xlValues, Lookat:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True) 
RngFind.Parent.Activate ' activate the worksheet, in case the VLookup Range is not the active sheet 
RngFind.Select ' select the range (cell) where Find was set to true 

End Sub 
+0

@Mcnanny上記の私の答えでコードをテストしましたか?それはあなたのポストで意図した帽子ですか? –

+0

それは動作します!どうもありがとう。 – Mcnanny

+0

@Mcnanny your'e歓迎、私の答え(緑色になる)の隣に** V **をクリックし、あなたは+2点を得ます。 –

1

は、多分あなたは、この

Private Sub CommandButton6_Click() 
    Dim status As Variant 

    status = Application.Match(Sheets("Gegevens").Range("B3"), _ 
           Sheets("bestand totaal").Range("J2:J9996"), False) '<--| try and get the index of 'Sheets("Gegevens").Range("B3")' value in 'Sheets("bestand totaal").Range("J2:J9996")' range 

    If Not IsError(status) Then '<--| if value successfully found 
     With Sheets("bestand totaal") '<--| reference "target" sheet 
      .Activate '<--| activate it 
      .Range("W2:W9996").Cells(status, 1).Select <--| select corresponding value in column "W" 
     End With 
    End If 
End Sub 
関連する問題