如何将单元格的填充图案复制到形状?

How to Copy the fill pattern of a cell to a shape?

我一直在编写一个代码,复制单元格的颜色并将其粘贴到相关形状。我能够复制颜色。但是,复制单元格的填充图案似乎更复杂。 我遇到的问题是,例如,单元格的模式参数是 "xlLightHorizontal",而形状的相同模式是 "msoPatternNarrowHorizontal"。两者绘制相同的填充图案但名称不同。

如何复制单元格的颜色和填充图案:

modelText(3, 1) = Sheets("Orders").Cells(row, j + 1).Interior.Color
modelText(3, 2) = Sheets("Orders").Cells(row, j + 1).Interior.Pattern
modelText(3, 3) = Sheets("Orders").Cells(row, j + 1).Interior.PatternColor

我如何为形状指定颜色和填充图案:

 With Selection.ShapeRange.Fill
        .ForeColor.RGB = modelText(3, 1)
        .BackColor.RGB = modelText(3, 3)
        .Patterned (msoPatternLightHorizontal)
 End With

注意:

Cells(row, j + 1).Interior.Pattern returns xlLightHorizontal

在哪里

ShapeRange.Fill.Patterned不接受xlLightHorizontal作为输入参数

你知道如何将单元格的填充图案复制到形状吗?

我试图找到解决办法。看起来两组枚举不匹配。我希望你确实有一组非常有限的模式你想使用。在这种情况下,我将对枚举进行 table 对(相同或至少相似模式的数字)以进行转换。我没有更好的主意。对不起。

https://docs.microsoft.com/en-us/dotnet/api/microsoft.office.core.msopatterntype?view=office-piahttps://docs.microsoft.com/en-us/dotnet/api/microsoft.office.interop.excel.constants?view=excel-pia