在Excel中换行文本的替代方法?

时间:2010-06-22 07:33:44

标签: excel excel-vba excel-2007 vba

我正在制作一个电子表格,提供用户输入的列。每个工作表都会根据用户提供的月份而变化。

If Target.Value = "January" Then
    ActiveSheet.Range("K7:K44").Value = ActiveSheet.Range("BA7:BA44").Value
ElseIf Target.Value = "February" Then
    ActiveSheet.Range("K7:K44").Value = ActiveSheer.Range("BB7:BB44").Value
End If

现在实际的宏更干净但是反正..现在如果说单元格BA7包含一个不适合K7的字符串,客户想要一个“下拉框”显示在{ {1}}类似于数据验证列表。我进行了搜索和搜索,我认为这不可能,但客户说他们之前已经在某处看到了它。

所以他们不想要换文字,他们不希望缩小以适应..他们想要他们的下拉箭头。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

AFAIK下拉验证宽度由单元格宽度控制,因此您无法通过下拉列表进行操作。

我认为一种(丑陋)方式来做类似于客户看到的事情是创建一个VBA控件来显示值,并将其设置为隐藏。

然后挂钩Worksheet_SelectionChange(ByVal Target As Range),检查目标是否在预期范围内,将控件放在单元格下方,将其Value属性更改为单元格内容并显示它。否则只需再次隐藏它。

编辑:

每个工作表只需要一个组合框或列表框(我不确定是否所有工作表都足够)。您可以更改TopLeftCell属性以将其显示在所需位置。

答案 1 :(得分:0)

这是一种贫民窟,但也许他们正在谈论这个:如果你去看数据 - >验证...然后允许和列表,您可以选择通过选择它作为自己的源来使单元格成为引用。然后你会有一个下拉框,其唯一目的是在自己的单元格中显示值,并且仅在选择单元格时可见。

这似乎适用于某些值,但对于非常长的条目,它仍会截断信息。这就是我所能猜到的;如果那不是它那么我很想知道答案是什么。