Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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
Excel 无法删除行及其上的组合框_Excel_Vba_Combobox_Activex - Fatal编程技术网

Excel 无法删除行及其上的组合框

Excel 无法删除行及其上的组合框,excel,vba,combobox,activex,Excel,Vba,Combobox,Activex,当用户在特定列中添加文本时,我有一个创建ActiveX组合框的工作表。 具体来说,用户在列a的单元格中输入一个字符串和一个宏,然后获取文本并在同一单元格上创建一个组合框 现在,我想在新创建的组合框之外添加一个删除按钮,以便删除同一行 我也成功地创建了组合框和按钮,但是“有时”我在删除行时出错:尤其是正确地删除了行,但组合框仍然存在。我不理解这个问题,因为它不是每次都发生 如何添加组合框和删除按钮(在工作表\u更改处理程序中): 与按下删除按钮相关的宏: For Each OleObj in Ac

当用户在特定列中添加文本时,我有一个创建ActiveX组合框的工作表。 具体来说,用户在列a的单元格中输入一个字符串和一个宏,然后获取文本并在同一单元格上创建一个组合框

现在,我想在新创建的组合框之外添加一个删除按钮,以便删除同一行

我也成功地创建了组合框和按钮,但是“有时”我在删除行时出错:尤其是正确地删除了行,但组合框仍然存在。我不理解这个问题,因为它不是每次都发生

如何添加组合框和删除按钮(在工作表\u更改处理程序中):

与按下删除按钮相关的宏:

For Each OleObj in ActiveSheet.Rows(CInt(Application.Caller.row)).OLEObjects 
   oleObj.Delete
Next oleObj.Delete

Rows(CInt(ActiveSheet.Shapes(Application.Caller).name)).Delete

正如我所说,大多数情况下,相关行和相关联的组合框都会被很好地删除,但有时只有行会被删除,而组合框仍然挂起。

您是否尝试过以捕获绑定到的行的方式命名按钮?例如,按钮“cat|1”位于第1行,“cat|30”位于第30行,因此您可以使用
instr(cell,“|”)
查找行号的位置,并使用该位置在activex控件中循环,并删除带有被删除行名称的控件。尝试限定您的工作表。使用
ActiveSheet
可能会导致类似的问题。也就是说,要删除的代码驻留在哪里?尝试了这两种方法,但都没有明显的成功。
For Each OleObj in ActiveSheet.Rows(CInt(Application.Caller.row)).OLEObjects 
   oleObj.Delete
Next oleObj.Delete

Rows(CInt(ActiveSheet.Shapes(Application.Caller).name)).Delete