0
首先,感謝您在過去的所有幫助,這個網站是一個祝福,你們都是聖人。現在到商業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
你會怎麼推薦編輯我的圖形代碼,因爲我不知所措我有點這裏。我需要繪製的範圍永遠不會是有限的,並隨着每次使用而變化。我需要確保它與一組數據集一起工作。 –
這裏有一個例子。設置r =範圍(「A1」)。end(xlDown)是一種爲具有未知長度的連續數據列定義範圍的方法。如果你花一些時間來了解範圍函數,我認爲它可以幫助你很長一段時間,現在和將來都會有所幫助。 –
更正:設置r =範圍(「A1」)。end(xlDown)只會讓你到底部的連續範圍。要定義從A1到其底部的連續範圍,請使用Set r = Range(「A1」)作爲一行代碼,然後在下一行Set r = Range(r,r.end(xlDown)) –