Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA应用程序。调用程序运行时错误_Vba_Excel_Runtime Error - Fatal编程技术网

VBA应用程序。调用程序运行时错误

VBA应用程序。调用程序运行时错误,vba,excel,runtime-error,Vba,Excel,Runtime Error,我在VBA中有以下代码: 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

我在VBA中有以下代码:

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
我想获取激活复选框的单元格,但它会引发运行时错误,我使用Application.Caller.Address或.Row或.Column。 我将复选框指定为sub-Kontrolkästchen_KlickenSieAuf 如果有人能帮助我,我会很高兴的


Greets

Application.Caller是一个字符串,控件名不是对象,复选框没有row属性。您需要使用:

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

例如。

Application.Caller是一个字符串,控件名不是对象,复选框没有row属性。您需要使用:

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

例如。

也许您可以告诉我们您正在尝试做什么,因为Application.Caller只能从UDF工作,而您似乎试图从子过程调用它。谢谢您的回答。我想找到一个单元格,在那里单击复选框,这意味着行和列。问题是我有大约30个复选框,我只会为所有复选框写一个子框,这意味着将复选框分配给子框。你是指复选框所在的单元格,还是单击复选框时当前活动的单元格?复选框所在的位置,因为如果活动单元格与单击的复选框不同,则活动单元格可能无法工作。我们在这里讨论的是什么样的复选框?ActiveX或窗体?也许您可以告诉我们您正在尝试做什么,因为Application.Caller只能从UDF工作,而您似乎试图从子过程调用它。谢谢您的回答。我想找到一个单元格,在那里单击复选框,这意味着行和列。问题是我有大约30个复选框,我只会为所有复选框写一个子框,这意味着将复选框分配给子框。你是指复选框所在的单元格,还是单击复选框时当前活动的单元格?复选框所在的位置,因为如果活动单元格与单击的复选框不同,则活动单元格可能无法工作。我们在这里讨论的是什么样的复选框?ActiveX或Forms?Application.Caller并不总是字符串。它取决于调用方的类型…Application.caller并不总是字符串。这取决于调用方的类型。。。