0

この関数を呼び出すたびに、ランタイムエラー「13」タイプの不一致が発生します。なぜこれが起こるのですか?

Public Function VersionExists(versionId As String)

   VersionExists = False

   For Each cell In Tabelle2.Columns(1)
      If cell.Value = versionId Then
         VersionExists = True
      End If
   Next

End Function
4

2 に答える 2

5

代わりに、列全体を含む範囲を返すため、cell.valuefromにアクセスすることはできません。.Columns(1)

For Each cell In Sheet1.Columns(1).Rows '//or .cells

おそらく、マッチ後に for ループを終了するのも良い考えです。

于 2012-09-25T14:24:40.123 に答える
2

コメントで提案した代替案を次に示します

Public Function VersionExists(versionId As String) As Boolean
    Dim aCell As Range, rng As Range

    Set rng = Tabelle2.Columns(1)

    Set aCell = rng.Find(What:=versionId, LookIn:=xlValues, _
    LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False)

    If Not aCell Is Nothing Then VersionExists = True
End Function
于 2012-09-25T14:32:30.777 に答える