2013-01-04 31 views
0

目前我正在更新每周图。在我复制并粘贴数据后,图形变为空白。所以我必须去Layout - > Axes Primary Horizo​​ntal,然后我必须选择show default Axis。我必须右键单击并格式化Axis,然后我必须将其固定为自动。虽然在每边都留下空间,所以我必须回去选择固定从最大值中减去一个,并将最小值加1以使图形正确。自动化Excel图表后,它变空

X轴以15分钟的间隔使用日期一周。有没有办法使用宏来自动化这个过程?使用active.workbook

  • 2012年9月3日0:15
  • 2012年9月3日0:30
  • 2012年9月3日0:45
  • 9/3/2012 1:00
  • 2012年9月3日1:15
  • 2012年9月3日1:30
  • 2012年9月3日1:45

以下是我从宏记录器得到的。 enter image description here

Sub Graph() 
' 
' Graph Macro 
' 
' Keyboard Shortcut: Ctrl+q 
' 
    Windows("2013W21.xls").Activate 

    ActiveSheet.ChartObjects("Chart 1").Activate 
    ActiveChart.Axes(xlCategory).Select 
    ActiveChart.Axes(xlCategory).MinimumScaleIsAuto = True 
    ActiveChart.Axes(xlCategory).MaximumScaleIsAuto = True 
    ActiveChart.Axes(xlCategory).MinimumScale = 41161 
    ActiveChart.Axes(xlCategory).MaximumScale = 41170 
    ActiveChart.Axes(xlCategory).MinimumScale = 41162 
    ActiveChart.Axes(xlCategory).MaximumScale = 41169 
    Selection.Delete 
    Application.CutCopyMode = False 
    ActiveWorkbook.Save 
End Sub 
+3

开始的一个好方法是打开宏记录器并记录您在问题中描述的步骤。 –

+2

'有没有办法使用宏来实现这个过程的自动化?'是的,当然可以。开始学习的一个好方法就是手动使用宏录像机。然后你可以调整记录器吐出的代码。如果您遇到困难,请发布您获得的代码,并告诉我们您在何处停滞不前以满足您的需求。我们可以通过这种方式更轻松地获得帮助......有关更多信息,请参阅[常见问题](http://www.stackoverflow.com/faq)。 –

+1

@Michael'宏记录器'是在Excel 2003和2010年的图表制作中很好的开始,但2007年... [为什么? 1:](http://www.ozgrid.com/forum/showthread.php?t=76496)。 [2:](http://support.microsoft.com/kb/937620)。 [3:](http://www.excelcharts.com/blog/excel-2007-charts-useless/)等.. :) – bonCodigo

回答

0

小组测试仪()

Dim rngDates As Range, sht As Worksheet 
Dim wsf As WorksheetFunction 

Set wsf = Application.WorksheetFunction 
Set sht = ActiveSheet 
Set rngDates = sht.Range(sht.Range("B5"), sht.Cells(Rows.Count, 2).End(xlUp)) 

'set x-axis (with a padding of 1 hour either side) 
With ActiveSheet.ChartObjects("Chart 1").Chart 
    .Axes(xlCategory).MinimumScale = wsf.Min(rngDates) - (1/28) 
    .Axes(xlCategory).MaximumScale = wsf.Max(rngDates) + (1/28) 
End With 

结束子

此代码解决了这个问题。