1

VBA を使用してブック内の次のワークシートを参照できるようにしたいのですが、マクロを多数の異なるブックに適用できるようにしたいので、シート名を参照することは避けてください。

ExcelチャートをフォーマットするためのExcelマクロを書いています。チャートのシリーズ タイトルで、シリーズ名が次のワークシートのセルを参照するようにしたいと思います。

私は動作していない次のことを試しました:

ActiveChart.SeriesCollection(1).Name = "='ActiveChart.Next.Select'!$B$1"

ただし、これは機能していません。

マクロ内で次のワークシートのセルを参照するグラフの系列名フィールドを取得する最も効果的な方法は何ですか?

次のことも試しましたが、どちらも機能しません。

ActiveChart.SeriesCollection(1).Name = "=Sheets(1)!$B$1"

これは、チャート、シート、チャート、シートなどで構成されたワークブックであることに注意してください...

4

2 に答える 2

1

このワンライナーを使用できます

ActiveChart.SeriesCollection(1).Name = "='" & Sheets(ActiveChart.Parent.Parent.Name).Next.Name & "'!B1

  1. Sheets(ActiveChart.Parent.Parent.Name次のシートの名前を返します。
  2. シート'名を参照するときに使用することが重要です。つまり、My Sheetという名前のシートはMy Sheet!B1、として機能しません。 'My Sheet'!B1
于 2012-06-30T04:22:18.503 に答える
0

従来の Excel 数式参照の代わりに VBA コードを配置しようとしているようです。試したことはありませんが、うまくいかないと思います。セルに何かを参照したい場合は、その古き良き明確な構文で数式を作成する必要があります =、シート名、!、セルアドレスは次のようになります。

=Sheet1!A1

もちろん、VBA を使用してこの式を作成し、フィールドに割り当てることもできます。このコードを試してください:

Dim ws As Worksheet
Dim formula As String

Set ws = ActiveSheet.Next
formula = "=" & ws.name & "!A1"

ActiveChart.SeriesCollection(1).name = formula
于 2012-06-29T16:10:40.137 に答える