Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.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 在VBA中精确调整图表大小_Excel_Vba_Charts_Resize - Fatal编程技术网

Excel 在VBA中精确调整图表大小

Excel 在VBA中精确调整图表大小,excel,vba,charts,resize,Excel,Vba,Charts,Resize,我试图用VBA在Excel中调整一些图表的大小。下面的代码完成了这项工作,但有一点需要注意:Excel 2016报告调整大小的图表的大小为5.21“*9.02”,而不是我预期的5“*9”。对于如何将图表精确调整为5“*9”的任何建议,我们将不胜感激。请注意,我没有任何保留纵横比的约束 多谢各位 Sub chartResize() Dim i As Integer Dim chartWidthInInches As Double Dim chartHeightInInches A

我试图用VBA在Excel中调整一些图表的大小。下面的代码完成了这项工作,但有一点需要注意:Excel 2016报告调整大小的图表的大小为5.21“*9.02”,而不是我预期的5“*9”。对于如何将图表精确调整为5“*9”的任何建议,我们将不胜感激。请注意,我没有任何保留纵横比的约束

多谢各位

Sub chartResize()
   Dim i As Integer
   Dim chartWidthInInches As Double
   Dim chartHeightInInches As Double

   chartHeightInInches = 5
   chartWidthInInches = 9

   For i = 1 To ActiveSheet.Shapes.Count
       If ActiveSheet.Shapes(i).Type = msoChart Then
          ActiveSheet.Shapes(i).Height = chartHeightInInches * 72
          ActiveSheet.Shapes(i).Width = chartWidthInInches * 72
       End If
   Next i
End Sub

仅当缩放设置不是100%时,才会发生此行为。100%时,Excel在调整大小后显示5“*9”。在你的帮助下,我回答了我的问题。谢谢。

出于好奇,图纸缩放设置是什么?100%还是其他百分比?
Sub chartResize()
   Dim i As Integer
   Dim chartWidthInInches As Double
   Dim chartHeightInInches As Double

   chartHeightInInches = 5
   chartWidthInInches = 9

   For i = 1 To ActiveSheet.Shapes.Count
       If ActiveSheet.Shapes(i).Type = msoChart Then
          ActiveSheet.Shapes(i).Height = chartHeightInInches * 72
          ActiveSheet.Shapes(i).Width = chartWidthInInches * 72
       End If
   Next i
End Sub