#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)