0

あるシート (この場合は「テスト シート」) の列 G のセルの値を別のシート (この場合は「テスト シート」) の列 B のセルの値と一致させる必要があるコード プロジェクトに取り組んでいます。情報')。「情報」シートでこの一致する行を見つけたら、その一致する行の列 C から整数値を取得する必要があります。

プログラムの別の部分から呼び出すことができる関数にこのコードを実装しようとしています。さまざまな方法で変数のサイズを指定しようとしましたが、メイン サブから関数を呼び出すときに発生する型の不一致に悩まされています。私はとても迷ってイライラしています。私が間違っていることを知っている人はいますか?

メインのサブコール:

Sub AutoSend()
    Dim Temp As Integer
    Dim rng As Range
    Dim r As Range

    Set rng = Range("A2:I6")

    For Each r in rng.Rows 'EDIT to more accurately reflect my code
        Temp = FindHigh(Cells(r,7).Value) 'THROWS ERROR HERE
    Next r
End Sub

呼び出される関数 FindHigh:

Function FindHigh(Key As String) As Integer

    Dim Target
    Dim Success As Integer

    Success = 0

    Sheets("Information").Select

    Set Target = Columns(2).Find(Key, LookIn:=xlValues)

    If Not Target Is Nothing Then
        Sheets("Information").Cells(Target.row, 3).Select
        Success = Rows(Target.RowIndex).Cells(Target.RowIndex, 3).Value
    End If

    Sheets("Test Sheet").Select
    FindHigh = Success

End Function
4

3 に答える 3

1

多分それはあるべきですTemp = FindHigh(Range("R7").Value)

またはTemp = FindHigh(Cells(7,18))

于 2013-07-10T15:52:56.220 に答える
0

Sub "AutoSend" で、どこにも定義されていない 'r' を使用しています

于 2013-07-10T15:54:05.707 に答える