まず、すべての助けをありがとう、このサイトは祝福であり、あなたはすべて聖人です。今すぐダウンしてくださいVBA - 不正なグラフコード
私のテストデータセットに問題がありますが、他のグラフは正しく表示されていますが、このデータセットによってグラフが正しく表示されません。私は問題を見つけたと思うが、それを修正する方法がわからない。私のコードがグラフの範囲を作成するとき、数学的な誤差のために正しい範囲を取得していません。参考のために、DataLength = 102
と、これはグラフとデータの一部がどのように見えるかです。 グラフは
"CZ"
にする必要がありますが、Dに行くのはfRemainder = 0
なので、ここでは駄目なコードです。
Dim iAlpha As Integer, fAlpha As Integer
Dim iRemainder As Integer, fRemainder As Integer
Dim ConvertToLetter As String
Dim fConvertToLetter As String
iAlpha = Int((DataLength)/26) '26 for the letters
fAlpha = Int((DataLength + 2)/26) 'for the average and sd functions, since they start at C not A
iRemainder = DataLength - (iAlpha * 26)
fRemainder = DataLength + 2 - (fAlpha * 26)
If iAlpha > 0 Then
ConvertToLetter = Chr(iAlpha + 64)
End If
If iRemainder > 0 Then
ConvertToLetter = ConvertToLetter & Chr(iRemainder + 64)
End If
If fAlpha > 0 Then
fConvertToLetter = Chr(fAlpha + 64)
End If
If fRemainder > 0 Then
fConvertToLetter = fConvertToLetter & Chr(fRemainder + 64)
End If
さらに、これは実際のグラフコードです。最初の行は"C13"
からオフセットされていますが、セルはグループごとに変更されます。 "C13" "C49" "C85"
など
ActiveCell.Offset(-7, -2).Select
ActiveCell.Range("A1:" & fConvertToLetter & "4").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlToRight)).Select
ActiveCell.Activate
Range(Selection, Selection.End(xlToRight)).Select
ActiveSheet.Shapes.AddChart.Select
With ActiveChart
.ChartType = xlLine
.Axes(xlCategory).Select
.HasTitle = True
.ChartTitle.Text = Range("B" & (12 * x - 5)).Value
End With
With ActiveChart.Parent
.Top = 153 * x + 12.75 * 2 ' reposition cells are 12.75 high and there are 36 cells between
.Left = 50 ' reposition
End With
。私が必要とする範囲は決して有限ではなく、使用ごとに変化します。私はそれが一連のデータセットで動作することを保証する必要があります。 –
ここにその一例があります。 Set r = Range( "A1")。end(xlDown)は、長さが不明な連続データの列の範囲を定義する1つの方法です。あなたが範囲機能について学ぶために時間を取るなら、私はそれが今と長期的にあなたにかなり役立つと思う。 –
修正:r = Range( "A1")を設定するend(xlDown)の範囲にある。連続する範囲をA1からその底部までを定義するには、Set r = Range( "A1")を1行のコードとして使用し、次の行に設定します。Set r = Range(r、r.end(xlDown)) –