Не удается получить значение ячейки в пользовательской функции - PullRequest
0 голосов
/ 15 февраля 2020
Function MergeNames(sArrDep As String, rMergeRange As Range) As String
Dim sTeamMember As String, rNames As Range
Dim iCol As Integer, sMergeNames As String, iIndex As Integer
    If rMergeRange.Rows.Count > 1 Then Exit Function
    Set rNames = Range("NAMES")
    With rMergeRange
        If sArrDep = "A" Or sArrDep = "D" Then
            iCol = .Columns.Count
                For iIndex = 1 To iCol
                Debug.Print .Cells(1, iIndex)
                    If .Cells(1, iIndex).Value = sArrDep Then
                        sTeamMember = rNames.Cells(1, iCol)
                        If sMergeNames = "" Then
                            sMergeNames = sTeamMember
                        Else
                            sMergeNames = sMergeNames & "; " & sTeamMember
                        End If
                    End If
                Next iIndex
        Else
            Exit Function
        End If
    End With
    MergeNames = sMergeNames
End Function

В ближайшем окне значение ячейки отображается правильно:

? rmergerange.cells (1, iindex) .value

A

Однако в пользовательской функции возвращаемое значение = пусто. Когда я запускаю тот же код, что и подпрограмма, содержимое ячейки корректно извлекается.

Что я делаю не так

1 Ответ

0 голосов
/ 15 февраля 2020

Похоже, что после удаления debug.print код выполняется правильно с разумной скоростью. Проблема решена

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