0

私はしばらくウェブを見回して、さまざまなことを試しましたが、うまくいきませんでした。長さが異なる一連のデータがすべて別のシートにあり、それらすべてを 1 つのシートに配置するマクロを作成しました。現在、すべての行数が異なります。それらすべてをグラフに載せようとしていますが、範囲を指定するときに行き詰まります。すべての助けをいただければ幸いです。以下は、記録されたマクロから操作したコードです。

Sub charttest()

    Dim r As Range
    Set r = ActiveSheet.Range("A1").CurrentRegion

    Range("D9").Select
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.SetSourceData Source:=Range("'OBA 1'!$A$1" & "r.Columns.Coun, r.Rows.Coun")
    ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
End Sub
4

2 に答える 2

0

次の行を変更してみてください。

ActiveChart.SetSourceData Source:=Range("'OBA 1'!$A$1" & "r.Columns.Coun, r.Rows.Coun")

Activesheetに(それがOBA 1シートであると仮定します:

ActiveChart.SetSourceData Source:=r

または(他の状況では):

ActiveChart.SetSourceData Source:=Range("'OBA 1'!" & r.Address)
于 2013-06-04T21:29:50.990 に答える
0

作業を見直してコードを更新しました。これは、自分のニーズを満たしていないためです。コードをいくつかの部分に分けて実行し、上記の方法を使用すると、チャート関数でエラー 13 が発生します。エラーの原因は次のとおりです。ソース行。たどる道について誰かアドバイスしてもらえますか?

Sub t_feuille(f_Work As Worksheet)

Dim num_line As Integer, t_Work As Worksheet
Dim myrange As Range

'instals time column
f_Work.Activate
f_Work.Cells(1, 1) = "Time"
For num_line = 2 To last_line(t_Work)
  f_Work.Cells(num_line, 1) = num_line - 2
Next

'graph set up

  Set myrange = ActiveSheet.Cells(1, 1).CurrentRegion
  Application.CutCopyMode = False
  ActiveChart.ChartWizard _
    Source:=Sheets(f_Work).Range(myrange), _
    Gallery:=xlXYScatterSmoothNoMarkers, Format:=4, PlotBy:=xlColumns, _
    CategoryLabels:=1, SeriesLabels:=1, HasLegend:=1, _
    Title:=f_Work, CategoryTitle:="", _
    ValueTitle:="", ExtraTitle:=""

End Sub

Function last_line(f_Work) As Integer
Dim num_col As Integer, num_line As Integer

  num_line = 0
  For num_col = 1 To ActiveSheet.Cells(1, 10000).End(xlToLeft).Column
    If ActiveSheet.Cells(100000, num_col).End(xlUp).Row > num_line Then
      num_line = ActiveSheet.Cells(100000, num_col).End(xlUp).Row
    End If
Next

  last_line = num_line
End Function
于 2013-07-11T09:48:29.563 に答える