有一个excel表B列中只要有填写内容为“SO04”的,P列对应的单元格就必填,并且必须包含“ZYC”字符串,这个怎么实现?
就是业务流程列,只要是填写的SO04,在仓库那一列中就必须是zyc开头的。
这个表不一定是填写,内容可能是从别的地方复制过来的。
我是想他们复制过来填写完后,保存的时候对上述条件进行检查,如果有不满足条件的行,就无法进行保存。
应该是需要vba来实现的,主要是需要保存的时候检查。
数字有效性吧
有效性中的公式 ,谢谢楼上的指正,修改下
=IF(B1="S004",AND($B1="S004",ISNUMBER(FIND("ZYC",$P1))),TRUE)
数据有效性我必须要一行一行的定义,格式刷都没用啊
追答不是,可以直接复制,或者采取选择p1:p1000这样的方式,但注意的是,公式的单元格应和你开始选择的单元格一致。。多试几次吧。不难的
如果是保存进来的,需要用代码来做。对保存前对该表进行检查。。
参考
表1改为你的实际表名
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)如果B5的内容是SO04,那么就要判断P5是否为空,不为空的话判断是否包含ZYC字符串,都满足的话可以保存,有一个不满足就无法保存。