0

わかりました、私はVBAにかなり慣れていないので、この障害に遭遇しました。

VBA で日付の列 ("dates") の名前を定義し、その名前を VBA 数式で使用したいと考えています。

ここで、Excel で名前を定義します。

Sub Build_dates(as_of_date As String, curve_source As String)
'Code
Range("B14").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveWorkbook.Names.Add Name:="dates", RefersTo:=Selection.Address
'More Code
End Sub

そして、これを使用したいサブがあります:

Sub Build_times(interp_count As String, as_of_date As String)
    Dim First As Range, Last As Range, fillRange As Range
    Set First = Range("C14")
    Set Last = Range("B14").End(xlDown).Offset(0, 1)
    Set fillRange = Range(First.Address & ":" & Last.Address)
    Select Case interp_count
        Case "Act/360"
            First.Formula = "=(dates-$B$14)/360"
            First.AutoFill Destination:=fillRange
        Case "Act/365"
            First.Formula = "=(dates-$B$14)/365"
            First.AutoFill Destination:=fillRange
    End Select
    'Add name to the time column
    Range("C14").Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWorkbook.Names.Add Name:="times", RefersTo:=Selection.Address
End Sub

問題は、"times" 列のすべてのセルに #VALUE があることです! 初期化。各セルの上に表示されるコンテキスト メニューの [計算ステップを表示] オプションを調べたところ、次のように表示されました。

("$B$14:$B$81"-36526)/360

これは、括弧で囲まれた値を #VALUE! に評価します。

私が定義した名前はどちらも左上のドロップダウン名メニューに表示されませんが、日付と時刻の両方を名前マネージャーで見つけることができます。

="$B$14:$B$81"

="$A$15:$A$81"

それぞれ。一方、範囲を手動で強調表示し、名前ボックスに名前を入力して定義したものは、次のような参照を生成します

='Bootstrap Validation'!$H$13:$H$46

VBA 定義の数式で名前付き範囲を使用できるようにするには、コードをどのように変更すればよいですか?

4

1 に答える 1