1
コンパイルエラー "byRef argument type mismatch。"が表示されるこれを促しているか、それをどうやって消し去ることができるのかを確かめてください。私は他のサブfuctionsを確認し、vOldArrはそれらのすべての範囲です。エラーがByRef
を渡された引数が手続きに予想される正確なデータ型を持っている必要があります変更を追跡中にVBAでコンパイルエラーが発生する
Dim vOldVal
Dim vOldArr
Private Sub Worksheet_SelectionChange(ByVal target As Range)
vOldVal = target.Value
Set vOldArr = target
End Sub
Private Sub Worksheet_Change(ByVal target As Range)
Call Get_Dirction(vOldVal, target, vOldArr)
End Sub
Sub Get_Dirction(vOldVal As Variant, target As Variant, vOldArr As Range)
If target.Count = 1 Then
Call Check_Change_Single(vOldVal, target)
Exit Sub
Else
Call Check_Change_Mult(vOldArr, target)
End If
End Sub
方法
Sub Get_Dirction(vOldVal As Variant, target As Variant, vOldArr As Range)
にVariant
ようvOldArr
を宣言Private Sub Worksheet_Change(ByVal target As Range)
OR
に
Range
たようvOldArr
を宣言あなたのGet_dirctionは書かれていますか?その署名は何ですか? (Sub Get_dirction(........)と書かれている最初の行)そして、もしvOldArrが範囲であれば、その部分ではなく、その部分として宣言してください。 – QHarr'Sub Get_Dirction(vOldVal As Variantバリアント、vOldArrとして範囲として、ターゲット) target.Count = 1次に コールCheck_Change_Single(vOldVal、ターゲット) 出口サブ エルス コールCheck_Change_Mult(vOldArr、ターゲット) END IF エンドSub' – mpmcderm
vOldArrは次のように宣言されている場合明示的にAs Rangeに変更し、コードの先頭にOption Explicitも使用します。 – QHarr