このコードは、 'dataWeaponField'名前付き範囲の文字列値ではなく、セルA8またはA17(アクティブなトグルに応じて)に#VALUEエラーをスローします。このExcel式(たとえば)セルA17正しく動作:= VLOOKUP(B17、dataWeaponField、2、FALSE)。私はVBAでこの式を単純に複製しようとしています。Excel VBAの範囲はVLOOKUP #VALUEエラー
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Target.Column = 1 And Target.Row = 7 Then 'CLICK TO SWAP WEAPONS
If Range("A8").Interior.ColorIndex = 6 Then 'Primary Weapon
Range("A8:C15").Interior.ColorIndex = 12 'Primary Weapon
Range("A17:C24").Interior.ColorIndex = 6 'Secondary Weapon
Range("A8").Value = "" 'Primary Weapon
Range("A17").Value = Application.VLookup(Range("B17"), ThisWorkbook.Names("dataWeaponField"), 2, False)
Else
Range("A8:C15").Interior.ColorIndex = 6 'Primary Weapon
Range("A17:C24").Interior.ColorIndex = 12 'Secondary Weapon
Range("A8").Value = Application.VLookup(Range("B8"), ThisWorkbook.Names("dataWeaponField"), 2, False)
Range("A17").Value = "" 'Secondary Weapon
End If
Range("A6").Select 'Cell above CLICK TO SWAP WEAPONS
End If
End Sub
最初のソリューションでは、エラー: – chazcon
@chazconが返されます。「このExcel式(たとえば)セルA17は正しく動作します:= VLOOKUP(B17、dataWeaponField、2、FALSE)」の質問と同じです。 – Slai
これらのソリューションはどちらも完璧に動作します。ありがとうございます。 – chazcon