Excel 粘贴为位图的图表(形状)不会在 VBA 中调整宽度?
Excel chart (shape) pasted as Bitmap will not adjust width in VBA?
我在传播sheet 中有一张图表,我想将其复制为位图并放置在同一个 sheet 中的其他地方。我的代码在下面,虽然没什么可看的。无论我将 .width 更改为什么,图表的宽度都不会根据我告诉它的进行调整。但是,如果我改变.Height,宽度将会改变。这表明粘贴的位图图像坚持保留其原始比例。
这 属性 是否特定于 Bitmap 对象,是否有解决此问题的方法而不将粘贴格式更改为 Bitmap 以外的格式?
感谢您的帮助。
Set AB = ActiveSheet.Shapes(ActiveSheet.Shapes.Count)
With AB
.Left = ActiveSheet.Range("AB1").Left
.Top = ActiveSheet.Range("AB1").Top
.Width = ActiveSheet.Range("AB100:BM100").Width
.Height = ActiveSheet.Range("AB1:AB50").Height
End With
我猜您粘贴的位图设置了“锁定宽高比”(设置图片格式 -> 大小和属性)。在这种情况下,Excel 将在您设置高度后 更改位图的宽度(以保持位图的纵横比)。
在设置高度和宽度属性之前使用 .LockAspectRatio = msoFalse。
我在传播sheet 中有一张图表,我想将其复制为位图并放置在同一个 sheet 中的其他地方。我的代码在下面,虽然没什么可看的。无论我将 .width 更改为什么,图表的宽度都不会根据我告诉它的进行调整。但是,如果我改变.Height,宽度将会改变。这表明粘贴的位图图像坚持保留其原始比例。
这 属性 是否特定于 Bitmap 对象,是否有解决此问题的方法而不将粘贴格式更改为 Bitmap 以外的格式?
感谢您的帮助。
Set AB = ActiveSheet.Shapes(ActiveSheet.Shapes.Count)
With AB
.Left = ActiveSheet.Range("AB1").Left
.Top = ActiveSheet.Range("AB1").Top
.Width = ActiveSheet.Range("AB100:BM100").Width
.Height = ActiveSheet.Range("AB1:AB50").Height
End With
我猜您粘贴的位图设置了“锁定宽高比”(设置图片格式 -> 大小和属性)。在这种情况下,Excel 将在您设置高度后 更改位图的宽度(以保持位图的纵横比)。
在设置高度和宽度属性之前使用 .LockAspectRatio = msoFalse。