所以我不想在这里使用VBA。
我有一个下拉列表,从3个可能的班次中选择一个:早,晚,晚。
根据选择,我想以15分钟的间隔填写下表中的时间列。从早6点开始,晚到14点,晚上22点。
下拉列表位于合并单元格D3:J3中,时间列位于范围C8:C40中。
我尝试使用Index()
和Match()
组合并给了我一个值误差。我也试过嵌套If()
但总是返回值0。
在另一个主题中,我希望工作簿始终作为新的未保存工作簿打开,以避免覆盖文件。
如果你的ifs返回0 - 你是怎么写6:00值的?因为如果为单元格选择了时间格式,并且作为公式的结果指定值6,则它将给出单元格值“6.1.1900 0:00:00”并显示0:00。因为值1表示Excel时间/日期术语中的一天,因此添加任何不带小数的数字将导致添加完整的天数而不会从0:00时间移动。
但如果我使用简单的IF组合(在单元格C8中),如下所示:
=IF(D3="Early";6/24;IF(D3="Late";14/24;22/24))
它将正常工作并显示早期的“6:00”等。然后添加15分钟,你只需要
=C8+15/(24*60)
并填写
至于防止覆盖,你可以将它保存为模板(这样,即使你使用键盘shorcut保存,它总会询问你想保存它的位置)或者让文件以只读方式打开。