Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 将单元格内部颜色从单击的单元格复制到活动单元格_Excel_Vba - Fatal编程技术网

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

Excel 将单元格内部颜色从单击的单元格复制到活动单元格,excel,vba,Excel,Vba,我有一个电子表格,上面有一个彩色键。用户应根据颜色键手动设置电子表格中各个单元格的颜色 理想情况下,我希望用户能够在电子表格中突出显示/选择一个或多个单元格,然后单击颜色键单元格,将其内部颜色复制到他们最初选择的单元格 例如: 用户选择单元格A17:D17,只需单击单元格A2,即可将这些单元格的内部颜色设置为与单元格A2的内部颜色相同 然后,他们可能只需单击单元格A3,即可将A17:D17的颜色更改为与A3相同的颜色 是否有宏/自定义函数/组合框的方法来执行此操作 如有任何建议,将不胜感激 致以

我有一个电子表格,上面有一个彩色键。用户应根据颜色键手动设置电子表格中各个单元格的颜色

理想情况下,我希望用户能够在电子表格中突出显示/选择一个或多个单元格,然后单击颜色键单元格,将其内部颜色复制到他们最初选择的单元格

例如: 用户选择单元格A17:D17,只需单击单元格A2,即可将这些单元格的内部颜色设置为与单元格A2的内部颜色相同

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

是否有宏/自定义函数/组合框的方法来执行此操作

如有任何建议,将不胜感激

致以最良好的祝愿,
Ben

为每种颜色添加一个命令按钮来完成此操作。让用户选择单元格,然后单击按钮将
选择的
.ColorIndex
属性更改为按钮的
.ColorIndex

实际上有一种内置方法,但我不知道您的用户是否会喜欢它。。。如果没有,则添加自定义命令按钮以复制colorIndex属性

手动过程:

  • 复制包含颜色键的单元格

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

  • 从显示的窗口中选择“格式”选项,然后单击“确定”


  • 颜色、格式等被复制而没有值。

    @A.斯加内利的想法是更好地实现您所需要的。只要有一堆改变颜色索引的颜色按钮

    原因是跟踪以前的选择很痛苦。当你做出新的选择时,我认为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
    
    选项显式
    将lastAddress设置为字符串
    专用子工作表\u选择更改(ByVal目标作为范围)
    如果最后地址为“”,则
    范围(lastAddress)。公式=“以前已选择”
    范围(lastAddress).Interior.ColorIndex=6
    如果结束
    lastAddress=Target.Address
    端接头
    

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

    这是实现OP想要的结果的一种更简单的方法。很好。一些有用的信息+1。以及对他人的友善和顺从。