2016-04-15 15 views
0

システムフォーマットに関係なく日付を保存するために、異なるシステム上の多くのユーザーがExcelを使用するため、stringを作成しました。以下のコードです:散布図vbaの日付と数値のプロット

Range("Z:Z").NumberFormat = "@" 
    Range("AC:AC").NumberFormat = "@" 
    Range("AF:AF").NumberFormat = "@" 
    dateArr = Array("4/1/2016", "4/15/2016", "5/1/2016", "5/15/2016", "6/1/2016", "6/15/2016", "7/1/2016", "7/15/2016", "8/1/2016", "8/15/2016", "9/1/2016", "9/15/2016", "10/1/2016", "10/15/2016", "11/1/2016", "11/15/2016", "12/1/2016", "12/15/2016") 
    For i = 2 To UBound(dateArr) 
     ActiveSheet.Cells(i, 26).Value = Format(dateArr(i - 2), "yyyy/mm/dd") 
    Next 

は、しかし、私はそれのために散布図をプロットする必要があるので、以下に示すように私は再び日付形式に変更:

Columns("Z:Z").Select 
Selection.NumberFormat = "yyyy/mm/dd" 

を、私は散布図をプロットした場合それはそれを適切にプロットしていない。

ActiveSheet.Shapes.AddChart.Select 
ActiveChart.ChartType = xlXYScatterLines 
ActiveChart.SetSourceData Source:=Range("Plot!$Z$2:$AA$" & date_no_row) 
ActiveChart.Axes (xlCategory) 
With ActiveChart.Axes(xlCategory) 
    .MinimumScale = 42401 
    .TickLabels.Orientation = 30 
    .TickLabels.NumberFormat = "yyyy/mm/dd" 
    .BaseUnitIsAuto = True 
    .MajorUnit = 14 
    .MinorUnitIsAuto = True 
    .Crosses = xlAutomatic 
    .ReversePlotOrder = False 
End With 
ActiveChart.Parent.Name = "Plot" 
With ActiveChart.Parent 
    .Height = 325 ' resize 
    .Width = 900 ' resize 
    .Top = Range("C3").Top 
    .Left = Range("B2").Left 
End With 
ActiveSheet.ChartObjects("Plot").Chart.HasLegend = False 
With ActiveSheet.ChartObjects("Plot").Chart 
    .HasTitle = True 
    .Axes(xlCategory, xlPrimary).HasTitle = True 
    .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Dates" 
    .Axes(xlCategory, xlPrimary).AxisTitle.Font.Size = 15 
End With 

ActiveSheet.ChartObjects("Plot").Activate 
ActiveChart.Axes(xlCategory).HasMajorGridlines = True 

カラムAAには数値が含まれています。

enter image description here

と予想プロット下の写真のように、私は取得mのプロットは、あなたがテキストに列Zを設定

enter image description here

+0

を始めます。 Excelの日付は数字になります。したがって**はすでにシステムフォーマットに関係なく**です。デフォルトの日付形式だけがシステムに依存します。しかし、これはオペレーティングシステムに依存しているため、Excelが実行されており、Excelファイルでは実行されていないため、影響を受けることはできません。 –

答えて

1

です。その後、数値書式を設定しようとしますが、セルはテキストなので、数値書式は決して使用されません。それを試してみてください。最初の2つのコードスニペットを適用し、手動でセル形式を変更します。それは効果がありません。ザッツない良いアイデア:

だから、「かかわらず、私はそれの文字列作っシステムフォーマットの日付を格納するには」、列Zの正しい形式で

Range("Z:Z").NumberFormat = "yyyy/mm/dd" 
関連する問題