2014-07-09 5 views
2

나는이 VBA에 다음 코드 :VBA Application.Caller 런타임 오류

Sub Kontrollkästchen_KlickenSieAuf() 
With ThisWorkbook.Sheets("Hinterlegungsmatrix Auswahl") 
Dim i, j, rowx, columnx As Integer 
rowx = Application.Caller.row 'I got here the run time error (object required)-->.row doesn't work 
columnx = Application.Caller.column 'I got here the run time error (object required)-->.column doesn't work 
     If Worksheets("Hinterlegungsmatrix Auswahl").Cells(rowx, columnx).Value = True Then 
       For i = 6 To 22 
       For j = 3 To 22 
        If (Worksheets("Hinterlegungsmatrix Auswahl").Cells(i, j).Interior.Color = RGB(250, 192, 144)) Or (Worksheets("Hinterlegungsmatrix Auswahl").Cells(i, j).Interior.Color = RGB(83, 142, 213)) Or (Worksheets("Hinterlegungsmatrix Auswahl").Cells(i, j).Interior.Color = RGB(242, 221, 220)) Then 
         Worksheets("Hinterlegungsmatrix Auswahl").Cells(i, j).Value = True 
        End If 
       Next j 
      Next i 
     End If 
End With 
End Sub 

나는 확인란이 활성화 된 셀을 좀하고 싶습니다하지만 wenn 내가 응용 프로그램을 사용하여 런타임 오류가 발생합니다. Caller.Address 또는 .Row 또는 .Column. 하위 확인란을 지정했습니다. Kontrollkästchen_KlickenSieAuf() 누군가 나를 도울 수 있다면 매우 기쁠 것입니다.

+0

아마도'Application.Caller'는 UDF에서만 작동하고 Sub 프로 시저에서 호출하려고 시도하는 것 같기 때문에 당신이하려고하는 것을 알려줄 수 있습니다. –

+0

안녕하십니까? 확인란을 클릭 한 셀을 찾으려면 행과 열을 의미합니다. 문제는 내가 약 30 개의 체크 박스를 가지고 있고 그것들 모두에 대해 1 개의 서브 만 쓰고, 서브 박스에 체크 박스를 할당한다는 것을 의미한다. – cimbom

+0

체크 박스가있는 셀을 의미합니까, 아니면 확인란이 클릭 된 상태에서 현재 활성 셀입니까? – Aiken

답변

4

Application.Caller는 문자열 (컨트롤의 이름)가 아닌 객체이다 접견하고, 체크 박스는 행 속성이 없습니다. 다음을 사용해야합니다 :

ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row 

예를 들면 다음과 같습니다.

+0

대단히 감사합니다 :)이 작품은 :) – cimbom