0

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

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

例子

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

以下是我从宏记录器中得到的。在此处输入图像描述

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
4

1 回答 1

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

结束子

这段代码解决了这个问题。

于 2013-03-29T05:47:37.677 回答