代码之家  ›  专栏  ›  技术社区  ›  N. Lucas

是否在Excel中换行?

  •  0
  • N. Lucas  · 技术社区  · 14 年前

    我正在制作一个电子表格,为用户输入提供一列。每个工作表根据用户给定的月份进行更改。

    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 客户希望“下拉框”出现在 K7 像一个数据验证列表。我已经搜索过了,我不认为这是可能的,但客户说他们以前在某个地方看到过。

    所以他们不想换行,也不想缩小到合适的大小。他们想要下拉箭头。有什么可能的方法可以做到这一点吗?

    2 回复  |  直到 14 年前
        1
  •  1
  •   Dr. belisarius    14 年前

    afaik下拉验证宽度由单元格宽度控制,因此不能使用下拉来进行验证。

    我认为一种(丑陋的)类似于您的客户机所看到的方法是创建一个vba控件来显示值,并将其设置为隐藏。

    然后钩住工作表“selectionchange”(byval target as range),检查目标是否在预期范围内,将控件适当地放在单元格下方,将其value属性更改为单元格内容并显示。否则就再藏起来。

    编辑:

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

        2
  •  0
  •   Michael    14 年前

    这有点像贫民区,但也许他们在谈论这个:如果你去数据验证…然后允许并列出,您可以选择将单元格作为引用本身,方法是选择它作为自己的源。然后会有一个下拉框,其唯一目的是在自己的单元格中显示值,并且只有在选定单元格时才可见。

    这似乎对某些值有效,但对于非常长的条目,它仍然会截断信息。这就是我所能猜到的;如果不是,那么我有兴趣看看答案是什么。

    推荐文章