将十张纸中的三栏编译为一份摘要中的十栏

问题描述 投票:0回答:1

我正在尝试在 Excel 中为一个工作项目制定一个时间表。 (是的,有更好的方法可以做到这一点,但我被告知使用 Excel,我想避免手动执行)

我们有 10 个人,每个人都手动更改自己的三列工作表(一月、二月和三月)中的单元格颜色。然后我们需要一个摘要表,它可以自动选取他们按人员组织的颜色。

必须是:每个人都有自己的床单,并且手动更改颜色。我可以重新组织列的调整方式,但对这些人来说组织起来越容易越好。

这是我到目前为止得到的:

Dim s As Integer

For s = 1 To 99 
Sheet1.Range("A" + s) = Sheet2.Range("A" + s) 
Next

并重复十次。 我的问题是,如果他们将个人工作表分为三列,但摘要表是一列,则 s 不能作为变量。

添加 if < whatever then such and such statements have not been cooperating with me as my VBA knowledge is pretty basic.

如何在一列中设置三种颜色?我希望这个解释有意义。

excel vba background-color
1个回答
0
投票

您不能将三种颜色作为单元格的填充。 Excel根本不允许这样做。 您可以使用形状来处理这个问题:

Sub AddShapes(Color1 As Long, Color2 As Long, Color3 As Long, nLeft1 As Long, nTop1 As Long, nLeft2 As Long, nTop2 As Long, nLeft3 As Long, nTop3 As Long, nWidth As Long, nHeight As Long)
Dim Sh As Shape
Dim wksh As Worksheet
        
    With Sheets("Sheet1")
        Set Sh = .Shapes.AddShape(msoShapeRectangle, nLeft1, nTop1, nWidth, nHeight)
        Sh.Fill.ForeColor.RGB = Color1
        Set Sh = .Shapes.AddShape(msoShapeRectangle, nLeft2, nTop2, nWidth, nHeight)
        Sh.Fill.ForeColor.RGB = Color2
        Set Sh = .Shapes.AddShape(msoShapeRectangle, nLeft3, nTop3, nWidth, nHeight)
        Sh.Fill.ForeColor.RGB = Color3
    End With

End Sub

当您迭代各个工作表和单元格时,您将获得每个单元格的填充颜色以分配给形状,然后使用其顶部和左侧位置在目标工作表中分配位置(将“Sheet1”更改为目标工作表名称)以及形状的大小。 其中唯一棘手的部分是设置“顶部”和“左侧”值以匹配目标工作表中的单元格。

© www.soinside.com 2019 - 2024. All rights reserved.