复选框不会粘在隐藏/取消隐藏的行上

时间:2015-07-31 06:28:04

标签: vba excel-vba excel

我有一张带有一堆复选框的表格。在此页面上还有一个隐藏/取消隐藏整行的按钮。有时当我取消隐藏行时,复选框将在彼此之上移动到第一个未隐藏的行。有什么方法可以解决这个问题吗?

隐藏/显示代码实际上只是

   Sheet1.Rows("73:75").Hidden = False

    Sheet1.Rows("73:75").Hidden = True

与复选框相关的其他一些代码:

启动工作簿时:

    For Each cObj In .OLEObjects
        'checkbox OK off/red
        posInstr = InStr(cObj.Name, "chkOK")
            If posInstr > 0 Then
                cObj.Visible = False
                cObj.Interior.Color = vbRed
            End If
     Next

1 个答案:

答案 0 :(得分:0)

问题是该复选框不在'中。一个单元格,但在工作表上的固定位置。我记得前一段时间试图解决这个问题并取得了有限的成功。您可以将代码中复选框的位置和可见性设置为与其链接的行的位置和可见性。然而,由于excel有很多不同的隐藏行的机制,因此很难可靠地获取该信息。我无法让它很好地工作。

相反,我做了一个不同的解决方案,看起来不太好,但工作得很好。我刚刚捕获了单元格选择事件,添加了一个检查它是否在可选单元格的范围内,并添加了一个X或删除它,使它看起来像一个选择。您甚至可以使用webdings2字体中的复选框符号。您可以检查列以进行肯定检查以查看已检查的行。