Ошибка компиляции: Аргумент Не является необязательным при предоставлении аргумента

#excel #vba #compiler-errors

Вопрос:

Привет, я продолжаю получать ошибку компиляции: Аргумент не является необязательным в моем коде excel VBA, когда я использовал функцию аргументов. Основная цель функции-записывать значения из одной книги и сохранять их в другой в виде журнала аудита. Однако я получаю ошибку выше и не могу найти решение, потому что похоже, что я предоставил аргументы каждому компоненту функции, который этого требует.

 Public Sub LogResults ()  Call RecordAudit(CreateCollection) End Sub  Public Function CreateCollection() As Collection  Dim colProspectValues As New Collection  Dim ManRateCredibility As Double  ManRateCredibility = 0  ManRateCredibility = CDbl(1 - worksheets("whorksheetname").Range("A1").Value)   colProspectValues.Add Worksheets("worksheetname").Range("A2").Value  colProspectValues.Add Worksheets("worksheetname").Range("A3").Value  colProspectValues.Add Worksheets("worksheetname").Range("A4").Value  colProspectValues.Add Worksheets("worksheetname").Range("A5").Value  colProspectValues.Add Worksheets("worksheetname").Range("A6").Value  colProspectValues.Add ManRateCredibility     Set CreateCollection = colProspectValues  End Function   Public Sub RecordAudit(ByRef aCollection As Collection)  Dim tempCollection as Collection  Dim i As Integer  Dim wbMaster As Workbook  Dim wbLocal As Workbook  Dim MasterNextRow As Long  Dim AuditLogPath As String    Application.ScreenUpdating = False  Set tempCollection = aCollection  AuditLogPath = "H:FolderBModelProspectAudit.xlsx"  Set wbMaster = Workbooks(AuditLogPath)  MasterNextRow = wbMaster.Worksheets("AuditLog").Range("B" amp; wbMaster.Worksheets("AuditLog").Rows.count).End(xlUp).Offset(1).Row   For i = 1 to tempCollection.count  wbMaster.Worksheets("AuditLog").Cells(MasterNextRow, i).Value =   tempCollection.Item(i)  Next i   End Sub  

Комментарии:

1. у вас есть Конечная коллекция в конце. Не Конец Саба.

2. Спасибо, что это была опечатка при вводе кода здесь. В среде prod есть конечная вложенная программа, а не конечная коллекция

3. В чем именно заключается ошибка? У твоей последней сабы нет имени …?

4. Файл lastSub называется Public Sub RecordAudit(Byref aCollection Как коллекция) при входе в отладку он выделяет функцию createCollection

5. Не в состоянии размножаться. Пожалуйста, укажите, в какой строке возникает ошибка.

Ответ №1:

Выяснил, что это было.

Я не полностью определил функцию, необходимую при настройке пути к книге с помощью

 Workbooks.Open(AuditLogPath)  

вместо

 Workbooks(AuditLogPath)