关于excel输入过程中数据有效性的问题

来源:百度知道 编辑:UC知道 时间:2024/05/23 09:45:18
在运用excel输入日期过程中,我想让excel某一表格只能输入显示某一特定类型日期(注意:是特定类型,不限于日期范围)比如从2000年到2050年中的工作日,而当我输入某一非工作日时,excel会立即提示“该日期为非工作日”。这该如何设置呢?请给出具体的操作步骤!
我觉得我说的已经够明白了。再强调一下,我所关注和区别的焦点是工作日和非工作日(工作日比如平时周一至周五;非工作日比如新年、五一、十一以及平时周末等等)。当输入工作日时,excel会自动显示我所输入的信息,而当我的日期为非工作日时,excel会立即提示“该日期为非工作日”。当然,非工作日需要我事先设置,至于如何设置,请一同给出答案!
可能二楼的不明白我的意思。如果我输入的日期不是工作日,我就想让系统跳出一个窗口,警告我“该日期不是工作日”。一楼的回答在一定程度上还是接近我想要的答案的,只是二者结合不起来,这就又一定程度上远离了我想要的答案,导致我的工作还是没法继续。还有没有高手啊?

呵,前面看错了。
选中单元格,假如选择的是C5,数据-在效性,设置卡片,允许里选择自定义,输入公式=AND(C3>DATE(2000,1,1),C3<DATE(2050,12,31),WEEKDAY(C3,2)<>6,WEEKDAY(C3,2)<>7),选择出错警告卡片,样式选警告,输入一个警告标题,错误信息输入该日期为非工作日。
至于节假日,用列表比较好。即用一个单元格区域输入一年的节假日列表,然后用=MATCH(TEXT(C3,"mm-dd"),列表区域)进行比较,或者用LOOKUP(TEXT(C3,"mm-dd"),TEXT(列表区域,"mm-dd"))查找。但两者结合我还没有搞出来,所以无法提供给你。

将2000年到2050年中的节假日输入在A列中,在B列中输入是周六、周日的工作日(如2007.10.31是周日,但由于节假日调整作为了工作日)
在D1中输入要查找的日期,在E1中输入公式
=IF(AND(WEEKDAY(D1)>5,COUNTIF(D1,B:B)=0),"非工作日",IF(COUNTIF(D1,A:A)<>0,"非工作日","工作日"))
注:至于是特定类型,只需要将公式WEEKDAY中的D1增加一个数据转换函数。如果你非要用在录入的日期单元格中出现提示,建议用宏。

编一个程序,在将2000年到2050年中的节假日输入在A列中,在B列中输入是周六、周日的工作日(如2007.10.31是周日,但由于节假日调整作为了工作日) 在D列中输入日期,出现自动提示
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 Then
If IsDate(Target) Then
If Weekday(Target, 2) > 5 Then
a = 1
End If
For i = 1 To Range("A1").En