2013-01-04 32 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 

結束子

此代碼解決了這個問題。