Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在EXCEL/VBA中设置默认日期_Excel_Vba_Default - Fatal编程技术网

在EXCEL/VBA中设置默认日期

在EXCEL/VBA中设置默认日期,excel,vba,default,Excel,Vba,Default,我有Excel/VBA应用程序,它根据提供的开始和结束日期运行查询。开始和结束日期在Excel工作表本身(而不是表格)中提供。 要求是将默认开始日期设置为月1日,结束日期设置为昨天日期,但用户应该能够覆盖这些日期 我可以使用公式设置默认的开始和结束日期,但是如果我们覆盖它并输入其他日期,那么保存在其中的公式就消失了。 请指导如何处理此问题。我通常通过使用另一列或单元格来解决此问题,并且我通过一些IF公式来控制输出,其中用户覆盖具有较高的优先级,而公式默认值具有较低的优先级。比如: IF(User

我有Excel/VBA应用程序,它根据提供的开始和结束日期运行查询。开始和结束日期在Excel工作表本身(而不是表格)中提供。 要求是将默认开始日期设置为月1日,结束日期设置为昨天日期,但用户应该能够覆盖这些日期

我可以使用公式设置默认的开始和结束日期,但是如果我们覆盖它并输入其他日期,那么保存在其中的公式就消失了。
请指导如何处理此问题。

我通常通过使用另一列或单元格来解决此问题,并且我通过一些IF公式来控制输出,其中用户覆盖具有较高的优先级,而公式默认值具有较低的优先级。比如:

IF(UserOverride“”,UserOverride,FormulaDefault)

编辑:
您可以将此代码附加到某些按钮/快捷方式

Public Sub resetDefaults()
    ThisWorkbook.Sheets(1).Cells(5, 5).Formula = "=TODAY()-1"
End Sub

是否有一个“重置”宏,用公式覆盖任何手动输入?你到底被困在哪里?有密码吗?@Mat,刚刚看到你的评论!我是VBA新手,您能告诉我在哪里编写重置宏以及如何启动它吗?我想这样写:如果工作表(“Sheet2”).Range(“C3”).Value=”“,那么工作表(“Sheet2”).Range(“C3”).Value=TODAY()-1结束如果我想在表单加载时,我们可以设置默认日期。不确定这是如何在VBA中完成的。我正在尝试以下操作,但不起作用:如果工作表(“Sheet2”).Range(“C3”).Value=”“,则工作表(“Sheet2”).Range(“C3”).Value=TODAY()-1 End If-End-Sub Excel/VBA中是否有与表单加载等效的表单加载?如果不想使用表单,为什么要提到
表单加载
?您的意思是“工作簿打开时如何运行宏”?您可以在谷歌上搜索该问题,并在10秒内得到答案。@SilverFish您可以在工作表中添加一个名为“恢复默认日期”的按钮,无论单元格中有什么内容,都可以使用默认值重新输入公式。