在excel中按行排序时如何移动形状和单元格

在excel中按行排序时如何移动形状和单元格,excel,vba,Excel,Vba,背景: 我正在使用形状为一个单元格指定多种颜色 例如: 使细胞半黄半绿。我将单元格变成绿色,并在顶部添加一个矩形黄色形状,覆盖单元格的一半 问题: 问题是,当我在excel上使用“排序”功能按日期对整行进行排序(我有一列带有日期)时,它显然会相应地移动彩色单元格,但是!!彩色形状根本不移动 如何制作彩色形状以随单元格移动?有没有办法将形状与单元格或行永久链接,使其随行移动 任何形式的帮助都将不胜感激 顺便说一句,我使用下面的代码根据所选单元格生成这些形状 Dim shp As Shape Se

背景: 我正在使用形状为一个单元格指定多种颜色

例如: 使细胞半黄半绿。我将单元格变成绿色,并在顶部添加一个矩形黄色形状,覆盖单元格的一半

问题: 问题是,当我在excel上使用“排序”功能按日期对整行进行排序(我有一列带有日期)时,它显然会相应地移动彩色单元格,但是!!彩色形状根本不移动

如何制作彩色形状以随单元格移动?有没有办法将形状与单元格或行永久链接,使其随行移动

任何形式的帮助都将不胜感激

顺便说一句,我使用下面的代码根据所选单元格生成这些形状

Dim shp As Shape

Set shp = ActiveSheet.shapes.AddShape(msoShapeRectangle, Selection.Left, Selection.Top, 25, Selection.RowHeight)

谢谢,

看来关键是你的形状要在细胞内非常轻微。也就是说,与其将其放置在与单元高度相同的左上角,不如将其放置在左上角的下方一点和右侧一点,其高度比单元短2点:

Dim shp As Shape

Set shp = ActiveSheet.Shapes.AddShape(msoShapeRectangle, Selection.Left + 1, Selection.Top + 1, 24, Selection.RowHeight - 2)

这在Excel(Office 365)中适用于我,我希望它能帮助您

看来关键是你的形状要在细胞内非常轻微。也就是说,与其将其放置在与单元高度相同的左上角,不如将其放置在左上角的下方一点和右侧一点,其高度比单元短2点:

Dim shp As Shape

Set shp = ActiveSheet.Shapes.AddShape(msoShapeRectangle, Selection.Left + 1, Selection.Top + 1, 24, Selection.RowHeight - 2)

这在Excel(Office 365)中适用于我,我希望它能帮助您

是的,使形状稍微内部工程完美!非常感谢你!你是一个生命的救世主。嗨,@Rehan,我很高兴我能帮上忙!看起来我们两个对stackoverflow.com都很陌生。我可以请你帮个小忙吗?我正在努力在网站上建立声誉,你投票支持我的答案(谢谢!)会帮我很大的忙,但如果你接受了我的答案,会帮我更多的忙:再次感谢,祝你好运!呃,我不确定。我从来没有在这里问过任何问题。这没什么大不了的。是的,稍微在里面做一点形状很完美!非常感谢你!你是一个生命的救世主。嗨,@Rehan,我很高兴我能帮上忙!看起来我们两个对stackoverflow.com都很陌生。我可以请你帮个小忙吗?我正在努力在网站上建立声誉,你投票支持我的答案(谢谢!)会帮我很大的忙,但如果你接受了我的答案,会帮我更多的忙:再次感谢,祝你好运!呃,我不确定。我从来没有在这里问过任何问题。没什么大不了的,这是真的。谢谢你的努力,这是真的。谢谢你的努力