Проходя длинный путь вокруг сарая, но это работает. Разделены на сабы. Одна подпрограмма ищет все строки с одним из 8 или 9 различных значений, таких как "UHS-
If Sheets("Sheet1").Cells(i, "H").Value Like "UHS-Admin*" Or
Sheets("Sheet1").Cells(i, "H").Value Like "UHS-Sup/Ment Res/Fell-*" Or
Sheets("Sheet1").Cells(i, "H").Value Like "UHS-Res/Fell-*" Or
Sheets("Sheet1").Cells(i, "H").Value Like "UHS-QA-*" Or
Sheets("Sheet1").Cells(i, "H").Value Like "UHS-Sup*" Or
Sheets("Sheet1").Cells(i, "H").Value Like "UHS-Autopsy-UHS Patient Autopsy" Or
Sheets("Sheet1").Cells(i, "H").Value Like "UHS-Analy-*" Then
и копирует эти строки в Лист 2.
Вторая подпрограмма разделяет эти задачи на разные листы по пользователю.
Sub FindFiebelkornUHSAOA()
Dim i, LastRow
LastRow = Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Row 'this line finds the last row used in a sheet.
Sheets("Sheet3").Range("A2:M1000").ClearContents 'this line clears the contents of Sheet3 from A11 to M1000.
For i = 11 To LastRow
If Sheets("Sheet2").Cells(i, "D").Value = "FiebelkornKr" Then
Sheets("Sheet2").Cells(i, "D").EntireRow.Copy Destination:=Sheets("Sheet3").Range("A"
& Rows.Count).End(xlUp).Offset(1) '
End If
Next i
End Sub
Пункт назначения - лист 3 для строк, содержащих FiebelkornKr.
Вот код, который достигает результата, который я ищу. К сожалению, я должен применить это к 40-50 пользователям.
Option Explicit
Sub PathDocsTimeSheets()
Call ExtractUHSAOA
Call FindFiebelkornUHSAOA
Call FindFiebelkornUHSClinCare
Call FindGreebonUHSAOA
Call FindGreebonUHSClinCare
End Sub
Sub ExtractUHSAOA()
Dim i, LastRow
LastRow = Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row 'this line finds the last row used in a sheet.
Sheets("Sheet2").Range("A11:M1000").ClearContents f
Sheet2 from A11to M1000.
For i = 11 To LastRow
If Sheets("Sheet1").Cells(i, "H").Value Like "UHS-Admin*" Or
Sheets("Sheet1").Cells(i, "H").Value Like "UHS-Sup/Ment Res/Fell-*" Or
Sheets("Sheet1").Cells(i, "H").Value Like "UHS-Res/Fell-*" Or
Sheets("Sheet1").Cells(i, "H").Value Like "UHS-QA-*" Or
Sheets("Sheet1").Cells(i, "H").Value Like "UHS-Sup*" Or
Sheets("Sheet1").Cells(i, "H").Value Like "UHS-Autopsy-UHS Patient Autopsy" Or
Sheets("Sheet1").Cells(i, "H").Value Like "UHS-Analy-*" Then
Sheets("Sheet1").Cells(i, "D").EntireRow.Copy Destination:=Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1) 'destination is Sheet2
End If
Next i
End Sub
Sub FindFiebelkornUHSAOA()
Dim i, LastRow
LastRow = Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Row 'this line finds the last row used in a sheet.
Sheets("Sheet3").Range("A2:M1000").ClearContents 'this line clears the contents of Sheet3 from A11 to M1000.
For i = 11 To LastRow
If Sheets("Sheet2").Cells(i, "D").Value = "FiebelkornKr" Then
Sheets("Sheet2").Cells(i, "D").EntireRow.Copy Destination:=Sheets("Sheet3").Range("A"
& Rows.Count).End(xlUp).Offset(1) 'destination is Sheet 3
End If
Next i
End Sub
Sub FindFiebelkornUHSClinCare()
Dim i, LastRow
LastRow = Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row 'this line finds the last row used in a sheet.
Sheets("Sheet4").Range("A11:M1000").ClearContents
For i = 11 To LastRow
If Sheets("Sheet1").Cells(i, "D").Value = "FiebelkornKr" And
Sheets("Sheet1").Cells(i, "H").Value Like "UHS-Clin*" Then 'finds rows that have both "FiebelkornKr" exactly in column D and another cell that contains "UHS-Clin" in column H.
Sheets("Sheet1").Cells(i, "D").EntireRow.Copy Destination:=Sheets("Sheet4").Range("A"
& Rows.Count).End(xlUp).Offset(1) 'destination is Sheet4
End If
Next i
End Sub
Спасибо за предложения и комментарии.