내가 다음 VBA 기능이 있습니다엑셀 VBA는 : 계산 결과의 셀 값을 반환
=IndexOfColor(D15:M24,37)
그리고 항상 "#VALUE"
를 얻을 : 내 엑셀 시트에서
Function IndexOfColor(InRange As Range, ColorIndex As Long) As Excel.Range
Dim R As Range
Application.Volatile True
If IsValidColorIndex(ColorIndex) = False Then
IndexOfColor = 0
Exit Function
End If
For Each R In InRange.Cells
If R.Interior.ColorIndex = ColorIndex Then
IndexOfColor = R
Exit Function
End If
Next R
IndexOfColor = 0
End Function
을,이를 호출합니다. 마지막까지 함수를 디버깅했습니다. 문제는 없었습니다. 이것은 단지 1 개의 결과를 반환해야하지만 (나는 범위를보고 있는데 단 하나의 색깔있는 셀이 있습니다), 배열 결과 (CTRL-SHIFT-ENTER)를 만들려고했습니다.
제안 사항?
CI는 무엇으로
Variant
을 대체 할 수 있습니까? 'ColorIndex'가 아니겠습니까? –'이것은 단지 1 개의 결과 만 반환해야합니다. '또한'1'은 무엇입니까? 어떻게 그곳에 도착 했습니까? 이 함수는 ') As Excel.Range' 범위를 반환해야합니까? 아마도 당신이하려는 것을 정확하게 설명 할 수 있다면? –
당신의 함수가'InRange'와'ColorIndex'의 두 매개 변수로 정의 된 것을 보았습니다 만,'D15 : M24','37','0'의 3 개의 인자를 가진 함수를 보았습니다 – SeanC