将日期设置为工作簿定义名称的值?

时间:2018-12-17 17:19:15

标签: excel vba excel-vba

我试图让VBA向名称管理器写入一个值以存储日期,而不是在公式中使用function reformatSelectManyCheckbox() { var tabl=document.getElementById("form:MyManyCheckBox"); var tr=tabl.rows; // find the TR row var cells=tr[0].cells; // all the cells (TD) on this row var g; var sz=cells.length; var r=0; // index for the new rows var celln=0; // index for the new cells, per row var row=null; for (g=0; g< sz; g++) { // I want 4 cells per row if(g % 4 == 0) { row=tabl.insertRow(r); r++; celln=0;} var cell = row.insertCell(celln); cell.innerHTML=cells[g].innerHTML; celln++; } tabl.deleteRow(r); // delete the original one line row } 函数。
我的这段代码似乎有效。
Today()

有更好的方法吗?不使用ThisWorkbook.Names.Add "Today", "=Datevalue(""" & Date & """)"

1 个答案:

答案 0 :(得分:2)

任何地方都使用了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