簡體   English   中英

VBA中的運行時錯誤'13'類型不匹配

[英]Runtime Error '13' Type Mismatch in VBA

我正在一個代碼項目中,需要將一張工作表(在此情況下為“測試表”)中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

也許應該是Temp = FindHigh(Range("R7").Value)

Temp = FindHigh(Cells(7,18))

在您的子“自動發送”中,您使用的“ r”尚未在任何地方定義

您可以嘗試一下。

Sub AutoSend()
    Dim Temp As Integer
    Dim r As Integer
    r = 1 'Row Number of the Row in column G that has the value you want to look up.  
    With WorksheetFunction
    Temp = .IfError(.VLookup(Sheets("Test Sheet").Cells(r, 7).Value, _
                    Sheets("Information").Range("B:C"), 2, False), 0)
    End With
End Sub

如果具有您要查找的值的單元格不在 G列中,或者來自告訴您哪個單元格擁有您想要查找的值的循環,或者將代碼提供給您的循環將非常有幫助您是一個更好的答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM