将单元格内部颜色从单击的单元格复制到活动单元格

时间:2009-08-11 15:54:52

标签: excel vba

我的电子表格顶部有一个颜色键。用户需要根据颜色键手动设置电子表格中各种单元格的颜色。

理想情况下,我希望用户能够突出显示/选择他们希望为其提供颜色的电子表格中的一个或多个单元格,然后只需单击颜色键单元就可以复制其内部颜色他们最初选择的细胞。

实施例: 用户选择单元格A17:D17,并且只想通过单击单元格A2来设置这些单元格的内部颜色与单元格A2的内部颜色相同。

然后,他们可能只想通过点击单元格A3将A17:D17的颜色更改为与A3相同的颜色

是否有宏/自定义函数/组合框这样做?

非常感谢任何建议

最诚挚的问候, 本

3 个答案:

答案 0 :(得分:2)

为每种颜色添加命令按钮以执行此操作。让用户选择单元格,然后点击按钮将.ColorIndex的{​​{1}}属性更改为按钮的Selection

答案 1 :(得分:1)

@A。 Scagnelli的想法是更好地实现您的需求。只需要一堆颜色按钮来改变颜色索引。

之所以跟踪之前的选择是一种痛苦。当你做出新的选择时,我不认为Excel知道你最后的选择是什么。您可以通过设置全局变量来记住每个最后的选择。这不好或推荐..但它是可能的。

您的工作表中需要以下内容;

Option Explicit
Dim lastAddress As String


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If lastAddress <> "" Then
   Range(lastAddress).Formula = "Was selected before"
   Range(lastAddress).Interior.ColorIndex = 6
 End If

 lastAddress = Target.Address

End Sub

注意:在发射.Interior.ColorIndex之前,您需要测试当前选择是否是您的一个颜色单元格,但我会留给您:)

答案 2 :(得分:0)

实际上有一种内置的方法可以做到这一点,但我不知道你的用户是否会喜欢它......如果他们不这样做,那么就添加一个自定义命令按钮来复制colorIndex属性。

手动流程:

  1. 复制包含颜色键的单元格。

  2. 单击要添加颜色的新单元格,然后右键单击选择粘贴特殊..

  3. 从出现的窗口中选择“格式化”选项,然后单击“确定”。

  4. 复制颜色,格式等没有值。