1

myUDFでは、「A1:A12」のようなセルの範囲を参照できますが、「A1、B4、H3」などの連続していないセルを参照するにはどうすればよいです
か連続していないセルではなく、文字列とセルの範囲を取る

[ExcelArgument(AllowReference = true, Name = "Relations", Description = "a set of relations")]object rels
4

1 に答える 1

3

コードから数式をパラメーターと共にワークシートに入力しているように聞こえますが、ユーザーが Excel の数式バーで数式を通常どおり編集できるようにする必要があります。あれは正しいですか?

その場合は、パラメーターを括弧で囲みます。たとえば、このようなUDFの場合...

Public Function MyUDF(my_param As Range)
    'concatenate all cell values in a non-contiguous range:
    Dim rgCell As Range, rgArea As Range
    For Each rgArea In my_param.Areas
        For Each rgCell In rgArea
            MyUDF = MyUDF & CStr(rgCell.Value)
        Next rgCell
    Next rgArea
End Function

...次のようにワークシート セルに入力します。

=MyUDF((A1,A3,A7:A11,C8:E10))

SUM などの組み込み関数を使用する場合と比較して、余分な括弧のセットに注意してください。

ところで、ご存知かもしれませんが、連続していない範囲をループするときは、範囲の領域をループしてから、各領域のセルをループする必要があります。範囲内のセルをループすると、最初の領域のセルのみが得られます。

于 2014-07-24T18:53:31.147 に答える