Я пытаюсь создать файл, в котором на каждом листе есть календарь, а ячейки представляют интервал времени в этот день. У меня есть несколько таблиц, идентичных друг другу, однако первая таблица предназначена для отображения информации. Другие рабочие листы для каждого члена группы, чтобы отметить, если они недоступны (NA) или удаленно доступны (R) в течение этого времени.
Я хочу, чтобы моя функция проверяла на каждом листе одну и ту же координату ячейки (поскольку каждый лист идентичен и ячейки представляют время в тот день), если в них записаны какие-либо R
или NA
. Если нет, он должен вывести AA
для всех доступных в исходной ячейке, где написана функция.
Если есть несколько человек, доступных удаленно, то он должен вывести AA(!)
для всех доступных, но некоторые для удаленного доступа, и покажите, кто из них удаленно доступен в комментарии к этой ячейке.
Если есть какие-либо NA
s, то выходные данные также должны быть NA
и показать, кто из них недоступен в качестве комментария к исходной ячейке.
Я продолжаю получать ошибку #VALUE!
, и я понятия не имею, почему.
Вот мой код:
Function Checkdate(a) 'a is the selected cell, which is the same cell as the function is written
Dim ac
ac = a.Column
Dim ar
ar = a.Row
Dim names
names = Array("person1", "person 2", "person 3")
Dim avlb As String 'avlb is the availabiltiy situation and later will be the result of the function
avlb = "AA"
Dim rnames As String 'the string variable where names will be stored who are remotely available
rnames = ""
Dim nanames As String 'the string variable where names will be stored who are not available
nanames = ""
For Each Name In names
If Worksheets(Name).Cells(ar, ac).Value = "R" Then
avlb = "AA(!)"
rnames = rnames & " " & Name
End If
If Worksheets(Name).Cells(ar, ac).Value = "NA" Then
avlb = "NA"
nanames = nanames & " " & Name
End If
Next Name
Checkdate(a) = avlb
If avlb = "AA(!)" Then
a.AddComment = "Remotely available:" & rnames
ElseIf avlb = "NA" Then
a.AddComment = "Not available:" & nanames
Else
a.Comment.Delete
End If
End Function