向右追逐,我有一个标签,其中4个Excel表堆叠在一起。每行在表格左侧的列中都有自己的“向上”和“向下”按钮,如下所示:
我缩小了按钮以适应同一个单元格(行高为20)。这允许我使用单元格的TopLeftCell.Row
属性,如下所示:单击时,按钮行中的内容将被复制粘贴到上方/下方的行。这是基本代码:
currRow = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row
If InStr(Application.Caller, "Up") > 0 Then
Move_Project_Up currRow
Else
Move_Project_Down currRow
End If
当用户访问此选项卡时,将隐藏任何空表行(使用Rows(rr).EntireRow.Hidden = True
)。按钮Move and size with cells
因此它们会自动隐藏)。所有可见按钮都按预期工作。然而,有时用户希望将项目从一个表的顶部“向上”移动到上表的底部(即,到当前隐藏的行)。您可以想象想要将数据从第312行“向上”移动到下图中的第244行:
代码成功移动并取消隐藏行。这里的问题:当行被取消隐藏时,按钮为深灰色且TopLeftCell.Row
错误:
它们未被禁用。单击时,它们仍会触发指定的宏。但是,我可以从Debug.Print
看到他们的TopLeftCell.Row
不一定是他们实际所在的行。在上图中,BOTH SETS OF BUTTONS的TopLeftCell.Row
为97.这是正确的对于第一组,但不是第二组。
有关为何会发生这种情况的任何想法?我怀疑它与取消隐藏行有关,和/或在此选项卡上发生了很多事实(例如超过10,000个数组公式)。
提前致谢!
答案 0 :(得分:0)
正如一位评论者(jkpieterse)建议的那样,将“已损坏”按钮的.Top
属性设置为同一行中单元格的.Top
值!