Установить дату в качестве значения для имени, определенного в книге? - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь, чтобы VBA записал значение в менеджер имен для сохранения даты вместо использования функции Today() в формулах.
У меня есть этот код, который, кажется, работает.
ThisWorkbook.Names.Add "Today", "=Datevalue(""" & Date & """)"

Есть ли лучший способ сделать это?Без использования DATEVALUE()?

1 Ответ

0 голосов
/ 17 декабря 2018

В любом месте, где используется Today (), вместо него должно использоваться строго числовое значение.

ThisWorkbook.Names.Add name:="Today", refersto:=chr(61) & CLng(Date)

Это должно быть сделано.Кажется излишним изменять Date на текстовое значение только для того, чтобы развернуться и снова преобразовать его в дату с помощью DateValue.

Возможно, вы не хотите, чтобы указанное имя было видимым для других.

ThisWorkbook.Names.Add name:="Today", refersto:=chr(61) & CLng(Date), visible:=false

Я бы порекомендовал поместить это в Workbook_Open или другую соответствующую подпроцедуру.

Option Explicit

Private Sub Workbook_Open()
    On Error Resume Next
    ThisWorkbook.Names("Today").Delete
    On Error GoTo 0
    ThisWorkbook.Names.Add Name:="Today", RefersTo:=Chr(61) & CLng(Date), Visible:=False
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...