空白后自动执行Excel Graph

时间:2013-01-04 14:08:21

标签: excel excel-vba excel-2010 vba

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

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

实施例

  • 9/3/2012 0:15
  • 9/3/2012 0:30
  • 9/3/2012 0:45
  • 9/3/2012 1:00
  • 9/3/2012 1:15
  • 9/3/2012 1:30
  • 9/3/2012 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

1 个答案:

答案 0 :(得分:0)

Sub Tester()

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

End Sub

此代码解决了这个问题。