通过输入框我想定义单元格中使用的日期。
Sub Refresh()
Dim myValue As Variant
myValue = InputBox("Give me a starting date")
Workbooks.Open Filename:="Y:\ 3300.xls"
Range("A1").Value = myValue
ActiveWorkbook.Close SaveChanges:=True
End Sub
奇怪的是,有时给定的日期是正确的,有时会反转(通过重新打开给定的文件来检查)。我尝试了以下日期:
30/01/17是正确的
14/05/17是正确的
04/02/17被撤销到02/04/17
08/09/17逆转至09/08/17
10/05/17逆转到05/10/17
05/10/17逆转到10/05/17
单元格格式符合上述条件(dd / mm / yy),即使我更改它并相应地调整输入,行为也会保持不变
答案 0 :(得分:1)
Excel无法将您的输入识别为日期。这只是输入到输入框的文本,当您将其添加到工作表时,Excel会尝试将其格式化。通过添加CDATE
,它会将输入的值转换为实际日期 - 如果我错了,我相信有人会在这里纠正我,但它似乎会使用您的本地设置进行转换。
我看到的另一个潜在问题是,您只是看着ActiveWorkbook
,而这可能不是刚刚打开的那个。下面的代码将工作簿添加到变量中,这样您就可以确保始终查看正确的书籍和该书中的正确表格。
Sub Refresh()
Dim myValue As Date
Dim wrkBk As Workbook
myValue = InputBox("Give me a starting date")
Set wrkBk = Workbooks.Open("Y:\ 3300.xls")
wrkBk.Worksheets("Sheet1").Range("A1") = CDate(myValue)
wrkBk.Close SaveChanges:=True
End Sub