0
2つの文字列引数を渡して文字列型を返す関数を作成しようとしていますが、同じ関数をサブ関数を通じて呼び出しています。私がチェックしている間に議論のミスマッチを示唆する議論に誤りがあり、議論が正しい。問題がどこにあるのか分かりません。誰か助けてもらえますか?ここでは、コードVBAで関数を呼び出す
Sub TableCat()
Dim Key As String
Worksheets("Table").Activate
Call RemoveDupes
Do Until ActiveCell.Value = ""
TableMode = Application.Trim(ActiveCell.Value)
TableId = Application.Trim(ActiveCell.Offset(0, -1).Value)
ControlID = Application.Trim(ActiveCell.Offset(0, -2).Value)
Key = ControlID & TableId
ActiveCell.Offset(0, 1).Value = TableCatCalling(Key, TableMode)
ActiveCell.Offset(1, 0).Select
Loop
End Sub
Function TableCatCalling(Key As String, Mode As String) As String
Dim CatCell As Range
Dim searchRange As Range
Worksheets("CCM Analysisv2").Activate
Set searchRange = Range("C1", Range("C1").End(xlDown))
Set CatCell = searchRange.Find(what:=Key, lookAt:=xlWhole)
If CatCell Is Nothing Then
TableCatCalling = " "
Else
If TableMode Like "New" Then
TableCatCalling = CatCell.Offset(0, -1).Value
End If
End If
Worksheets("Table").Activate
End Function
変数を宣言します。 (あなたのコードモジュールの最初の行に 'Option Explicit'を使用して強制するようにしてください)' TableMode As String'を宣言して、あなたの問題が解決すると思います( "ByRef引数型の不一致"エラー'TableCatCalling(Key、TableMode)'で)。 – YowE3K
'Key'と' Mode'を 'iKey'と' iMode'に変更してみてください – Quint
あなたの関数では未定義の変数 'TableMode'を使っています。これはおそらく 'Mode'を意図しています。繰り返しますが、 'Option Explicit'はそのタイプミスについて教えてくれるでしょうし、コードがあなたが期待していることをしていない理由を頭に入れて何時間も頭を悩ます前に修正しなければなりません。 – YowE3K