わかりました、私は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 定義の数式で名前付き範囲を使用できるようにするには、コードをどのように変更すればよいですか?