2017-08-17 13 views
0

私はいくつかの助けが必要なこのコードの2つの問題は、私はVBAが新しく、問題の原因がわからない。Excel VBAグラフ最大縮尺エラー

最初の問題は、Me.Range("L7") = Format(Me.Range("C4")....)がフォーマットされると、日付をアメリカの書式 "mm/dd/yyyy"に設定することです。しかし、次の行Me.Range( "L8")は正しい "dd/mm/yyyy"形式になっていますか?

第2の問題は、グラフの最大軸を変更するときに、タイプの不一致エラーが発生しますが、最小軸のスケールの変更は完全にうまく機能しますか?

助けてください。

Private Sub CommandButton1_Click() 
answer = MsgBox("This will prepare the workbook for the next month, are you sure?", vbYesNo) 
If answer = vbNo Then Exit Sub 

Range("c34") = "=DATE($B$2,$A$2,A34)" 'enters formula into cell c34 
Range("a2") = Month(Date) - 1 'changes month to last month 
Range("a3") = Year(Date) 
If Month(Date) - 1 <> Month(Range("c34")) Then 
    Range("C34").Clear 'checks if last date in column is in same month, if not, clear 
End If 

myLR = ThisWorkbook.Sheets("Data Input").Cells(Rows.Count, 3).End(xlUp).Row 'grabs date in last row 
Me.Range("L7") = Format(Me.Range("c4"), "dd/mm/yyyy") 'gets start date of month and formats it 
Me.Range("L8") = Format(Me.Cells(myLR, 3).Value, "dd/mm/yyyy") 'gets last date of month and formats it 
Range("K7") = "First Day of Month" 
Range("K8") = "Last Day of Month" 

'Chart section 
    Sheets("Site 5").Select 
    ActiveChart.ChartArea.Select 
    ActiveChart.Axes(xlValue).MajorGridlines.Select 
    ActiveChart.Axes(xlCategory).MinimumScale = Sheets("data input").Range("L7") 
    ActiveChart.Axes(xlCategory).MaximumScale = Sheets("data input").Range("L8") 
    ActiveChart.Axes(xlCategory).Select 
    Selection.TickLabels.NumberFormat = "d/mm/yyyy" 
End Sub 

答えて

1

フォーマット機能によってセルの値を変更することは適切ではありません。 NumberFormatLocalでセルの書式を変更する方が良いです。

Private Sub CommandButton1_Click() 
answer = MsgBox("This will prepare the workbook for the next month, are you sure?", vbYesNo) 
If answer = vbNo Then Exit Sub 

Range("c34") = "=DATE($B$2,$A$2,A34)" 'enters formula into cell c34 
Range("a2") = Month(Date) - 1 'changes month to last month 
Range("a3") = Year(Date) 

If Month(Date) - 1 <> Month(Range("c34")) Then 
    Range("C34").Clear 'checks if last date in column is in same month, if not, clear 
End If 

myLR = ThisWorkbook.Sheets("Data Input").Cells(Rows.Count, 3).End(xlUp).Row 'grabs date in last row 
'Me.Range("L7") = Format(Me.Range("c4"), "dd/mm/yyyy") 'gets start date of month and formats it 
Me.Range("L7") = Me.Range("c4") 
Me.Range("L7").NumberFormatLocal = "dd/mm/yyyy" 
'Me.Range("L8") = Format(Me.Cells(myLR, 3).Value, "dd/mm/yyyy") 'gets last date of month and formats it 
Me.Range("L8") = Me.Cells(myLR, 3).Value 
Me.Range("L8").NumberFormatLocal = "dd/mm/yyyy" 

Range("K7") = "First Day of Month" 
Range("K8") = "Last Day of Month" 

'Chart section 
    Sheets("Site 5").Select 
    ActiveChart.ChartArea.Select 
    ActiveChart.Axes(xlValue).MajorGridlines.Select 
    ActiveChart.Axes(xlCategory).MinimumScale = Sheets("data input").Range("L7") 
    ActiveChart.Axes(xlCategory).MaximumScale = Sheets("data input").Range("L8") 
    ActiveChart.Axes(xlCategory).Select 
    Selection.TickLabels.NumberFormat = "d/mm/yyyy" 
End Sub