好吧,我对 VBA 很陌生,我遇到了这个障碍。
我想在 VBA 中为一列日期(“日期”)定义一个名称,然后在 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
问题是“次”列中的每个单元格都有#VALUE!在里面。我查看了出现在每个单元格上的上下文菜单中的“显示计算步骤”选项,并看到了这个:
("$B$14:$B$81"-36526)/360
它将括号中的值评估为#VALUE!
我定义的两个名称都没有出现在左上角的下拉名称菜单中,但我可以在名称管理器中找到日期和时间,每个都指
="$B$14:$B$81"
和
="$A$15:$A$81"
分别。而我通过手动突出显示一个范围并在名称框中键入名称来定义的一个参考会产生类似的参考
='Bootstrap Validation'!$H$13:$H$46
我应该如何更改我的代码,以便我可以在 VBA 定义的公式中使用命名范围?