Есть ли код, который может исправить мой текущий код? - PullRequest
0 голосов
/ 15 мая 2019

Я создал систему регистрации заезда / отъезда. мой код прекрасно работает, когда применяется только к одному листу. но когда я пытаюсь применить этот код к нескольким листам, я получаю сообщение об ошибке, я пробовал три кода и все еще не могу получить Excel, чтобы применить код к каждому отдельному листу. Любой код, который я использую, сбивает с толку Excel и перенаправляет меня на первый лист.

1-й код, который я использовал

dim WS as worksheet
for each WS in sheets
(my code)
next WS

2-й код, который я использовал

For Each Worksheet In ThisWorkbook.worksheets
sheets("may","June","july").activate
(my code)
next worksheet

Я также пытался (worksheet.activate), но этот код перенаправляет меня на первый лист и теряет данные на других листах

Вот текущий код, который я пытаюсь заставить работать

Sub Check_in()
For Each Worksheet In ThisWorkbook.worksheets
worksheets("April", "May", "June").Activate
Dim code As String: code = InputBox("Please scan a barcode", "Scan    procedure")
If code = "" Then MsgBox ("No code scanned"): Exit Sub
Dim NbChIn As Integer: NbChIn = application.CountIf(Range("STORE_RECORDS [CHECKED OUT on its way to analytical lab]"), code)
Dim NbChOut As Integer: NbChOut = application.CountIf(Range("STORE_RECORDS[SAMPLE RECEIVED from analytical lab]"), code)


If NbChIn > NbChOut And NbChIn > 0 Then
MsgBox ("This sample is already Checked-out" & Chr(10) & "Please click  sample received and retry"): Exit Sub
Else
Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = code
Cells(Rows.Count, 1).End(xlUp).Offset(0, 1) = Now
End If
Next Worksheet
End Sub

Sub Check_Out()
Dim code As String: code = InputBox("Please scan a barcode", "Scan procedure")
If code = "" Then MsgBox ("No code scanned"): Exit Sub
Dim NbChIn As Integer: NbChIn = application.CountIf(Range("STORE_RECORDS[CHECKED OUT on its way to analytical lab]"), code)
Dim NbChOut As Integer: NbChOut = application.CountIf(Range("STORE_RECORDS[SAMPLE RECEIVED from analytical lab]"), code)
If NbChIn = NbChOut And NbChIn > 0 Then
    MsgBox ("This sample has already been received" & Chr(10) & "Please check it out and retry"): Exit Sub
Else
    If Range("STORE_RECORDS[CHECKED OUT on its way to analytical lab]").Find(code, , , xlWhole, , xlPrevious) Is Nothing Then MsgBox ("No match, ask Carlos !"): Exit Sub
    Range("STORE_RECORDS[CHECKED OUT on its way to analytical lab]").Find(code, , , xlWhole, , xlPrevious).Offset(0, 2) = code
    Range("STORE_RECORDS[CHECKED OUT on its way to analytical lab]").Find(code, , , xlWhole, , xlPrevious).Offset(0, 3) = Now
End If
End Sub'

код обычно сообщает неверное количество аргументов, или объект не поддерживает это свойство или метод. Код работает только на листе 1 или в моем случае (апрель). Я хочу, чтобы этот код применялся к каждому листу, упорядоченному по месяцам.

...