Это структура моей рабочей книги.
На одном листе под названием "экспорт" есть все ключи roomKeys на отель (их можно повторить) (2 тыс. Строк).
Один лист называется "delete "содержит все ключи комнаты, которые нужно удалить (100 строк).
Мне нужно из листа" удалить "создать функцию, в которой вы передаете в качестве параметра" ключ комнаты ", и она сообщит вам, сколько разэто значение повторяется в столбце roomkey на листе "export".
Моя идея состоит в том, чтобы отфильтровать по roomkey, а затем посчитать, сколько строк в выделении и вернуть это число.Я думаю, что не могу вызвать другую рабочую таблицу внутри функции.
Public Function HowManyRatePlansPerRoom(Roomkey As String) As Integer
Dim SheetName As String
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim LastRow As Integer
Dim Rowz As Integer
On Error GoTo errorHandler
'Application.ScreenUpdating = True
Set ws1 = Sheets("Export")
ws1.Activate
ws1.Cells(1, 1).Select
'Find the last row
LastRow = ws1.Range("A1").CurrentRegion.Rows.Count
'select the data set
ws1.Range("A1:BI" & CStr(LastRow)).Select
'filter table by roomkey
Selection.AutoFilter Field:=1, Criteria1:=Roomkey
'this counts the data in the filter and -1 means minus the header
Rowz = ws1.AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Cells.Count - 1
HowManyRatePlansPerRoom = Rowz
errorHandler:
MsgBox "The following error occurred: " & Err.Description
Err.Clear
End Function
Контекст этой идеи таков: если клавиша room повторяется 5 раз при «экспорте», а у меня 5 «клавишей комнаты» при «удалении»Мне нужно удалить эту комнату.С другой стороны, если у меня есть 5 комнатных ключей для «удаления», но только два для «экспорта», я должен покинуть комнату.