2015-07-07 3 views
0

Я пишу небольшой код VBA, и получаю ошибку ByRef Argument Type Mismatch когда функция LoopThroughNamesAndPopulateValues() вызывается Main()ByRef Аргумент Тип Несовпадение при вызове функции

Sub Main() 
    Call LoopThroughQuoteNamesAndPopulateValues("Sheet2", 1, 1) 
End Sub 

Sub LoopThroughQuoteNamesAndPopulateValues(ByVal sheetName As String, ByVal row As Integer, ByVal column As Integer) 
    Dim sheet As Excel.Worksheet 
    Set sheet = ThisWorkbook.Sheets(sheetName) 

    For i = row To 10000 
     If sheet.Cells(i, column).Value = "" Then 
      Exit For 
     Else 
      Call Finder_Get_Query(sheetName, i, column) 
     End If 
    Next i 
End Sub 
+0

Вы знаете, что обе строки и столбца сохранены слова в VBA? ... – Jeeped

+0

ohh Я не сделал, на самом деле, но возвращаюсь в VBA после долгого времени. Но все равно это не сработает. Изменяет 'row' на' rowNum' и 'column' на' columnNum' – Mahesha999

+0

Вы должны были вставить неправильное имя функции или строку кода вызова. 'Call' не соответствует' Sub'. (и параметр row/rw должен быть длинным, возможно, столбцом/cl) – Jeeped

ответ

0

Option Explicit: Добавить «Option Explicit» в верхней части модуль и компиляция. Я предполагаю, что этот код не будет компилироваться, потому что я не объявлен. Возможно, это не проблема, если только Finder_Get_Query не задыхается от i.

Ошибка обработки: поместите обработчик ошибок в Finder_Get_Query и один в LoopThroughNamesAndPopulateValues ​​и посмотрите, какая из них поймает вашу ошибку. Это поможет вам сузить код.

Многие простые проблемы можно решить, выполнив следующие два шага. Вот мой предпочтительный обработчик ошибок, который удобен для отладки, поскольку она позволяет возобновить во время выполнения, если вы хотите:

Sub SampleErrorHandler() 

    On Error GoTo EH 

    'code 

    GoTo FINISH 

EH: 
    With Err 
     MsgBox "Error:" & vbTab & .Number & vbCrLf _ 
      & "Source" & vbTab & .Source & vbCrLf _ 
      & .Description 
    End With 

    'for debugging purposes 
    Debug.Assert 0 
    GoTo FINISH 
    Resume 

FINISH: 

    'clean up, release resources 

End Sub 
Смежные вопросы