1

1) 質問

生データの配置にマクロを使用したいのですが、生データはフォルダー内の多くの .xls ファイルにあり、すべて次のような配置になっています。

A1 ........ ブランク A(ブランク) --------- ブランク

このように、1つの.xlsファイルの異なるシートに各列を配置する必要があります

データ (シート 1) データ (シート 2) 空白になるまで... 列 A 列 B 空白になるまで...

2)質問は、グラフを簡単に作成するためにこのマクロをループする必要があることです...本当に助けを感謝します

Sub Macro1()
'
' Macro1 Macro
'
' Keyboard Shortcut: Ctrl+g

    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.ChartType = xlLine
    ActiveChart.ApplyChartTemplate ( _
        "C:\Users\bukharms\AppData\Roaming\Microsoft\Templates\Charts\analysis.crtx")

    ActiveSheet.ChartObjects("Ambient").Activate
    ActiveChart.SeriesCollection(1).Values = "='data'!$B$2:$B$298"
    ActiveChart.SeriesCollection(1).Values = "='data (2)'!$B$2:$B$298"
    ActiveChart.SeriesCollection(2).Values = "='data (3)'!$B$2:$B$261"
    ActiveChart.SeriesCollection(3).Values = "='data (4)'!$B$2:$B$243"
    ActiveChart.SeriesCollection(4).Values = "='data (5)'!$B$2:$B$265"
    ActiveChart.SeriesCollection(5).Values = "='data (6)'!$B$2:$B$307"
    ActiveChart.SeriesCollection(6).Values = "='data (7)'!$B$2:$B$728"

 ActiveSheet.Shapes.AddChart.Select
    ActiveChart.ChartType = xlLine
    ActiveChart.ApplyChartTemplate ( _
        "C:\Users\bukharms\AppData\Roaming\Microsoft\Templates\Charts\analysis.crtx")

    ActiveSheet.ChartObjects("Coolant Into Engine").Activate
    ActiveChart.SeriesCollection(1).Values = "='data'!$C$2:$C$298"
    ActiveChart.SeriesCollection(1).Values = "='data (2)'!$C$2:$C$298"
    ActiveChart.SeriesCollection(2).Values = "='data (3)'!$C$2:$C$261"
    ActiveChart.SeriesCollection(3).Values = "='data (4)'!$C$2:$C$243"
    ActiveChart.SeriesCollection(4).Values = "='data (5)'!$C$2:$C$265"
    ActiveChart.SeriesCollection(5).Values = "='data (6)'!$C$2:$C$307"
    ActiveChart.SeriesCollection(6).Values = "='data (7)'!$C$2:$C$728"

 ActiveSheet.Shapes.AddChart.Select
    ActiveChart.ChartType = xlLine
    ActiveChart.ApplyChartTemplate ( _
        "C:\Users\bukharms\AppData\Roaming\Microsoft\Templates\Charts\analysis.crtx")

    ActiveSheet.ChartObjects("Coolant Out from Engine").Activate
    ActiveChart.SeriesCollection(1).Values = "='data'!$D$2:$D$298"
    ActiveChart.SeriesCollection(1).Values = "='data (2)'!$D$2:$D$298"
    ActiveChart.SeriesCollection(2).Values = "='data (3)'!$D$2:$D$261"
    ActiveChart.SeriesCollection(3).Values = "='data (4)'!$D$2:$D$243"
    ActiveChart.SeriesCollection(4).Values = "='data (5)'!$D$2:$D$265"
    ActiveChart.SeriesCollection(5).Values = "='data (6)'!$D$2:$D$307"
    ActiveChart.SeriesCollection(6).Values = "='data (7)'!$D$2:$D$728"
4

1 に答える 1

0

Chr() を使用して ASCII コードを変換することにより、文字をループできます。Chr(64) = 'A'、Chr(65) = 'B' など...

 For i = 1 To 4   
    ActiveSheet.ChartObjects(i).Activate
    ActiveChart.SeriesCollection(1).Values = "='data'!$" & Chr(i + 65) & "$2:$" & Chr(i + 65) & "$298"
    ActiveChart.SeriesCollection(1).Values = "='data (2)'!$" & Chr(i + 65) & "$2:$" & Chr(i + 65) & "$298"
    'etc...
  next i
于 2012-12-19T12:45:41.933 に答える