2009-04-11 79 views
0

编辑:Excel中的VBA无需使用:设置Cell.RowHeight将单元格值更改为TRUE或FALSE?

这是因为单元格被设置为按钮的LinkedCell属性。当我把它设置为null时,一切正常(当然,我正在使用该属性,但是很好)。

找不到通过谷歌上的事......

我有一个包含在一个相当狭窄的文本列了相当数量的细胞。我希望有一个按钮用于展开/收回单元格被推动时的高度(您知道,“显示”和“隐藏”)。事情是,无论何时设置单元格的RowHeight属性,单元格的值都设置为TRUE或FALSE。有人能告诉我这是为什么吗?

顺便说一句,我使用Excel 2003中

Private Sub ToggleButton1_Click() 
    new_caption = ToggleButton1.Caption 
    Dim height As Integer 
    If new_caption = "Show" Then 
     new_caption = "Hide" 
     height = 125 
    Else 
     new_caption = "Show" 
     height = ToggleButton1.height 
    End If 
    ToggleButton1.Caption = new_caption 
    Range(ToggleButton1.LinkedCell).RowHeight = height 
End Sub 
+0

@Ed,你的更新(或者现在看到的恢复)确实显示了问题 - 请参阅我的更新答案以获得解释和可能的解决方法。 – paxdiablo 2009-04-11 09:48:13

回答

1

这正常工作对我来说,虽然我使用的是Office XP,而不是2003年。你确定这是代码(或唯一代码)的运行那个按钮?

它正确设置高度,但根本不改变单元格的内容。

我试过这个既是一个按键,也是一个没有问题的命令按钮驱动的宏。

UPDATE:

根据您的编辑,你指出你使用LinkedCell找到您的按钮电池,我没有你使用得当认为。 LinkedCell将单元格的值绑定到控件的值。

当你按下按钮时发生了什么,它的值被设置为一个布尔值(当按下时可能为true,当释放时为false,我不知道)。由于这是链接到单元格,单元格值也正在更改为按钮值。你需要找到一种不同的方式将按钮“链接”到单元格。 (我们称它们为Ax),并且你的控件按钮位于(并且链接到)Bx中,并且不需要对其他任何东西都不使用Bx(无论如何,这些按钮可能会出现在它们之上)。

 
      A    B 
    +--------------------+--------+ 
1 | Long text which is | [Hide] | 
    | wrapped because |  | 
    | the state is SHOW. |  | 
    +--------------------+--------+ 
2 | More text which is | [Hide] | 
    | wrapped because |  | 
    | the state is SHOW. |  | 
    +--------------------+--------+ 
3 | Hidden text becaus | [Show] | 
    +--------------------+--------+ 
4 | Even more text  | [Hide] | 
    | that's wrapped  |  | 
    | because the state |  | 
    | is SHOW.   |  | 
    +--------------------+--------+ 

在VBA代码

然后,您仍然可以设置Bx的行高(因为它影响到整个行),你不会关心已在B柱细胞被地方 - A列单元格值将保持不变。

或者,如果你使用列B的东西,将它链接到ZZx(或IVx或任何最右边的列是连续的)。

+0

我编辑了原始文章中显示问题出在哪里的代码。我编辑了原文。 – 2009-04-11 05:16:32

相关问题