Код ошибки VBA «Ошибка компиляции: недопустимая внешняя процедура» - PullRequest
0 голосов
/ 08 марта 2019

Я пытаюсь написать код, который я скопировал откуда-то еще.

Код не работает и выдает ошибку.

Может ли кто-нибудь просмотреть и сообщить, есть ли синтаксическая ошибка

Dim directory As String, filename As String, sheet As Worksheet, total As Integer
Dim WrdArray() As String

Application.DisplayAlerts = False

directory = "U:\GMR & PAYROLL REPORTS 2018-19\FEBRUARY 2019\COMPLETED\PAYSLIPS\"
filename = Dir(directory & "*.csv")

Do While filename <> " "
    Workbooks.Open (directory & filename)
        WrdArray() = Split(filename, ".")
        For Each sheet In Workbooks(filename).Worksheets
            Wookbooks(filename).ActiveSheet.Name = WrdArray(0)
            total = Workbooks("PAYSLIPS CONSOL.xlsm").Worksheets.Count
            Workbooks(filename).Worksheets(sheet.Name).Copy after:=Workbooks("PAYSLIPS CONSOL.xlxm").Worksheets(total)

            GoTo exitFor:

        Next sheet

exitFor:
    Workbooks(filename).Close
    filename = Dir()
Loop
Sheets("ALL HOMES").Select
lastsheets = Worksheets.Count
For i = 2 To lastsheets
mysheet = Sheets(i).Activate
mysheetrow = Cells(Rows.Count, 1).End(x1Up).Row
Range("A1;U" & mysheetrow).Select
Selection.Copy
Sheets("ALL HOMES").Select
lastrow = Cells(Rows.Count, 1).End(x1Up).Row
Range("A1").Select
Range("A" & lastrow).Offset(1, 0).Range("A1").Select
ActiveSheet.Paste
Next i
MsgBox "Your Report is Ready"

Application.DisplayAlerts = True

End Sub

1 Ответ

0 голосов
/ 08 марта 2019

В общем, вы можете использовать компилятор VBA, чтобы проверить, может ли ваш проект компилироваться.Чтобы сделать это в редакторе VBA, нажмите Отладка -> Скомпилировать проект VBA.Каждый раз, когда вы щелкаете по нему, он либо будет работать гладко и ничего не говорить, либо покажет вам первую ошибку компиляции в проекте, с которым он столкнулся (чтобы вы могли это исправить и снова щелкнули по Компилировать).

Я пытался скомпилироватькод, который вы отправили:

Во-первых, как предлагается в комментарии, у вас нет строки Sub вверху.Например,

Sub create_payroll()

, где create_payroll - ваше предпочтительное имя для этого макроса.Поместите эту строку прямо над кодом, который вы разместили в вопросе.

Во-вторых, вместо рабочих книг есть опечатка "Wookbooks".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...