目前我正在更新每周图表。复制并粘贴数据后,图表变为空白。所以我必须去布局 - > Axes Primary Horizontal,然后我必须选择show default Axis。我必须右键单击并格式化轴,然后我必须将固定移动到自动。虽然在每一侧留下一个空间,所以我必须返回选择固定从最大值减去一个并添加一个到最小值以使图表正确。
X轴使用15分钟的日期一周。有没有办法使用宏来自动化这个过程?使用active.workbook
实施例
以下是我从宏录制器中获得的内容。
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
答案 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
此代码解决了这个问题。