2016-10-17 47 views
-1

データがデータベースから取得され、グラフ作成が行われるExcelにエクスポートされる大きなExcelファイルがあります。グラフの異なる部分の色は、別のワークシートのセルに記入し、そのコードを読み取る機能によって制御されます。問題は、コードが1つの色しかない限り、コードが動作するようになりました。このようにして、セルのフォーマット - >塗りつぶし - >パターンスタイルを使用したいと思います。私はこの方法でそれを解決しようとしましたが、私はカッコで行にランタイムエラー438を取得します。すべての助けに感謝しています!「VBAエラー438オブジェクトはこのプロパティまたはメソッドをサポートしていません」

   Else 
        .FullSeriesCollection(i).ChartType = xlLineStacked 
        .FullSeriesCollection(i).Format.line.Weight = 2.5 
        .FullSeriesCollection(i).Format.line.ForeColor.rgb = _ 
        getRGB(findInSub(setupLC, findInCategory(tables, _ 
        Right(tbl.Name, Len(tbl.Name) - 3)).offset(0, 6), lineC, _ 
        .SeriesCollection(i).Name)) 
       With Sheets("mysheet").Range("mycell") 
      If .Cells.Interior.Pattern = -4142 Or .Cells.Interior.Pattern = 1 Then 
      .FullSeriesCollection(i).Format.Fill.Patterned = .Interior.Color 
      Else 
       (.FullSeriesCollection(i).Format.Fill.Patterned = .Cells.DisplayFormat.Interior.PatternColor) 
      End If 
      End With 
       End If 
      End If 
     Next i 
    End With 
End With 

/ここではJohan

+1

コードで「マークされたライン」が見えません:)。 – Zac

+0

私は行をマークする方法を知らなかったので、代わりにそのまわりにかっこがあります。この1つ: (.FullSeriesCollection(i).Format.Fill.Patterned = .Cells.DisplayFormat.Interior.PatternColor) – johaneriksson

答えて

0

は、私が見ることができる問題です:あなたは.FullSeriesCollectionは、Rangeオブジェクトの一部ではないのに対し、範囲を参照されWithブロック内.FullSeriesCollectionを呼んでいます。これはChartオブジェクトの一部です。あなたはいくつかのブロックを持っているようです(With)。 ブロックを使用する代わりに、完全修飾参照を使用して.Cells(つまりThisworkbook.Worksheets("mysheet").Range("mycell").Cells ...)にすることをおすすめします。これは、その前のWithブロックがChartオブジェクトを参照している場合に問題を解決するはずです