1

シートに動的な名前付き範囲がいくつかあります。次の式を使用してそれらを動的にしました。

=$A$1:rowend($A$1)

行の終わりは、行「A」で空のセルに到達する前の最後のセルを返すカスタム関数です

名前付き範囲の名前は次のとおりです: "iec_air" 別の名前付き範囲もあります: "iec_ground"

今問題は、セルにデータ検証を適用し、「iec_air」を直接参照するリストを選択すると機能しますが、indirect("iec_"&"air") を使用して同じことを達成しようとすると機能しません

私の名前付き範囲が静的だったとき、それは機能していましたが、そうではありません.それを修正する方法はありますか?

4

1 に答える 1

1

VBAの使い方を知っていますか?できることの 1 つは、シート モジュールでイベントを作成し、空白セルに基づいて名前付き範囲のサイズを動的に調整することです。

Sub setRangeDynamically()

dim oRange     as range

'Set range from cell(1,1) until the first blank cell downwards
set oRange = thisworkbook.sheets("blabla").range(cells(1,1),cells(1,1).end(xldown))
thisworkbook.Names.Add Name:="MyRange", RefersTo:=oRange 
end sub

データ検証を作成するには:

With thisworkbook.sheets("BlaBla").range("B2").Validation 
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ 
    xlBetween, Formula1:="=MyRange" 
End With
于 2012-05-08T13:17:37.727 に答える