セルの範囲内のテキストのみからデータ検証リストを作成したいと考えています。範囲からテキストを取得 - VBA(Excel)
私は式を検索しましたが、私は何も見つけませんでしたので、私は自分自身の機能を作ることにしましたが、機能しません。
私はこれらのコードを試みた:
コード1:
Function ListFromRange(rng As Range) As Range
Dim cl As Range
Dim entry As Range
For Each cl In rng
If Not IsNumeric(cl.Value) Or cl.Value = "" Then
If entry Is Nothing Then
Set entry = cl
Else
Set entry = Union(entry, cl)
End If
End If
Next
Set ListFromRange = entry
End Function
コード2:私は、定義された名前で使用して使用するときに、第2のコードが定義されていることを作業されるが
Function ListFromRange2(rng As Range) As Variant
Dim cl As Range
Dim i As Integer
Dim entry() As String
ReDim entry(rng.Count)
For Each cl In rng
If Not IsNumeric(cl.Value) Or cl.Value = "" Then
entry(i) = cl.Value
i = i + 1
End If
Next
ListFromRange2 = entry
End Function
データ検証リストの名前は、検証リストのソースにエラーがあることを示しますが、この関数をindexで使用して目的の結果を返すとエラーが発生します。
また、いくつかの画像は、より多くを説明する。しかし、数なし
を:
が、私はテキストが含まれている細胞からのリストを作成し、ここでそれを適用したいです値。
If If IsNumeric(cl.Value)ではなく、cl.Value = "" Thenであることを実際に 'If'ステートメントにしたいと思います。ロジックを括弧で囲まないと、「Not」が個々のステートメントに個別に適用されます。また、最初の行に 'Variant'ではなく' Range'を返します。最後に、何をしようとしていますか?あなたは実際には言っていない。現在のところ、関数は数値以外の値を含むセルの範囲を返します...なぜそれが間違っているか/それ以外に何をしたいのですか? – Wolfie
検証リストが自分のUDFで機能していないため、イメージに表示されるのは行全体の検証であり、数値の値が含まれています。 – Tima
さて、上記のようにロジックを更新しましたか?次に、ドロップダウンで値をクリアして更新していますか?'IsNumeric(" 12,300 ")がfalseを返すようなことはありませんので、あなたのロジックは大丈夫です。それはあなたが失敗している他のコードでなければなりません。 – Wolfie