求一个关于EXCEL范围输入限制的问题,谢谢!!!!!

hydeL 2007-04-28 01:27:35
先感谢各位帮忙的朋友了,
问题是这样的,举个例子,比如要在C1限定范围为G001-G020,输入其它的范围就会

弹出一个对话框之类的提示输入有误请重新输入,然后在A2B2输入的内容必须一

致,如果A2B2不相同也会如上弹出个对话框提示,同理,A3B3,A4B4,`````最后就是在这

些的基础上只要在A1B1A2B2A3B3A4B4.....输入的值超过G001-G020的范围就会弹出个

对话框提示输入超出范围请重新输入,请问这个能实现吗?如果能实现能告诉我具体的

步骤吗?再次感谢!
...全文
1628 点赞 收藏 16
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hydeL 2007-05-15
太感谢楼上的这位朋友了,经试用完全没问题
回复
hydeL 2007-04-29
再次感谢刺猥兄,我在说详细点吧(我表达能力需要练习,见谅!)

一个EXCEL表格, 这张表它给出了一个范围,而这个范围比如是GXXXX1至GXXXN

我现在想实现的是,A1B1=范围中间的一个值且A1B1的值相等(GXXX1至GXXXN中间的任何一个)

比如A1B2都=GXXX1

A2B2=这个范围中间的另一值(不能和A1B1的值相等,如果相等就弹出一个对话框提示有重复.或者干脆不让输入直到输入另外一个不重复的才让输入)

同理,A3B3也不能=A1B1,A2B2(一但有重复也会有提示框提示)

而这个范围值一开始就在C1上有提示(比如:GXX1至GXX10(英文字母+数字){我照您的方法=有郊数据=最小值与最大值设定,系统提示必须设置数值不能包括其它字符})

我已经尽最大努力表达我的意思了,如果您还有不明白的地方,能否留个联系方式,我们直接电话

沟通如何?

回复
hydeL 2007-04-29
我就这样说吧,C1D1分别是范围最小值和最大值,同时也是变量(由别人来输入),比如别人在C1打

G9070700001在D1打G9070700010 就意为着A1B1,A2B2,A3B3,A4B4,------,.....

只能输入G9070700001--G9070700010之间的数(包括G9070700001,G9070700010)

我的意思是能不能在C1和D1上设个逻辑判定之类的!一但有了这二个值就会自动C1<=A1B1<=D1,
C1<=A2B2<=D1,.........直到全部输入完,,同时,我所说的A1B1相等,是必须都在A1B1上都输入一

边不能复制,,这样是防止别人A1B1输入的值会不相同!!! 谢谢
回复
thoughter 2007-04-29
还有点错,公式中“,SUM(A1:A18)<=C1”这段可以去掉,我还是按前面的错误理解写的...
回复
thoughter 2007-04-29
对了,上面的公式等的前提是
“那么你看这样行不行,也不要输G了,直接在所有单元格里设置单元格格式为:
"G"0000 (G后面带4个数字)
这样只要直接输数字就行了,显示出来的前面直接加G”
现在都是按照数字处理的,如果一定要手工输入G的话要复杂些
回复
thoughter 2007-04-29
那么你看这样行不行,也不要输G了,直接在所有单元格里设置单元格格式为:
"G"0000 (G后面带4个数字)
这样只要直接输数字就行了,显示出来的前面直接加G
C1只是给出限定范围,那么前面是我理解错误了,C1不需要设置有效性
C1是否可以只给出最大值?
如果可以,那么
在A列设置如下的有效性:
允许:自定义,公式:
=AND(COUNTIF(A1:A18,A1)=1,SUM(A1:A18)<=C1,A1>=1,A1<=C1) (A18是最多用到的列数,根据实际需要调整)
如果B列可以使用公式来自动获取A列的值,那么就不再需要其它设置,也不再需要VBA来处理什么
否则,B列设置与A列类似的有效性(A改成B即可,或直接将A列复制到B列)
VBA中函数内容改为
for row=1 to 18 '行数
if Cells(row,1)<>"" and Cells(row,2)<>"" and Cells(row,1)<>Cells(row,2) then
msgbox "A" & row & "与B" & row & "的值不等"
Exit Sub
end if
next row
如果C1不能只给出最大值,那么。。。
这个稍微复杂点,等确定不能了再说。。。
回复
thoughter 2007-04-29
写错了,限定是:数据>=C1,数据<=D1
回复
thoughter 2007-04-29
你看看这样行不行吧
不需要VBA
A1单元格的有效性设为:
允许自定义,忽略空值前的钩去掉,公式:
=AND(COUNTIF(A:A,A1)=1,VALUE(RIGHT(A1,LEN(A1)-1))>=VALUE(RIGHT($C$1,LEN($C$1)-1)),VALUE(RIGHT(A1,LEN(A1)-1))<=VALUE(RIGHT($D$1,LEN($D$1)-1)),LEFT(A1)=LEFT($C$1),LEN(A1)=LEN($C$1),OR($A1="",$B1="",$B1=$A1))
可能会提示“公式目前包含错误,是否继续”,不必理会,选择“是”
然后将其复制到AB2列所有需要的单元格(不需更改内容),方法:
复制数据有效性设置
单击包含要复制的设置的单元格,再单击“复制”。
选定需要重复设置的单元格。
在“编辑”菜单上,单击“选择性粘贴”。
单击“有效性”选项。
注释 无法复制或粘贴链接到 SharePoint 网站的列表中单元格的数据有效性。

提示

在“选择性粘贴”对话框中,“全部”和“边框除外”选项也可粘贴数据有效性设置。


公式包含的限定依次是:列中数据不得重复,数据<=C1,数据>=D1,数据第一个字母与C1中的开头字母相同,数据长度与C1相同,AxBx中要么至少有一个是空格,要么两者相等。
此公式起作用的条件是:AB列及C1D1格式均为一个相同字母打头后为数字,且数字位数相同;C1单元格为最小值,D1单元格为最大值,仅对数据录入AB2列时起作用
另,字母大小写不区分,单元格留空不会提示
回复
thoughter 2007-04-28
那就是指只能输入"G001"、"G002"、"G003"、"G004"、……"G020"这20个字符串之一?
那么用允许序列,手动在下面输入G001,G002,G003,G004,G005...一直到G020
这是笨办法
也可以在函数里加一段语句来处理
这又有问题了,“只要在A1B1A2B2A3B3A4B4.....输入的值超过G001-G020的范围就”数字的合怎么跟字符串比较呢?不过这是在VBA里处理的,自己明白具体要求,应该好处理
回复
hydeL 2007-04-28
我这里说的是G不代表表格中的G

是一个序列号,比如在C1中输入G0101024

又有个问题,不光只是限制G010和G020,是只要输入G011 G012 G013...G020中间的数也会出现

对话框
回复
hydeL 2007-04-28
对,就是最小值与最大值的意思,,问题又来了,照你的办法不行,我最小值填的G001,最大值

填的是G020,它提示最小值必须是数字! 请问题怎么可以又有数字又有文字啊? 谢谢
回复
thoughter 2007-04-28
G001到G020还是不太明白...
选中单元格C1,菜单-数据-有效性-设置
允许整数或小数,数据介于,最小值G1,最大值G20
不知道你是不是这个意思

选中单元格A1,有效性-允许整数或小数,数据等于,数值B1,忽略空值然后整个一列复制一下(如果用公式的话就没必要用有效性来限制了)
回复
andyzgx1 2007-04-28
二楼的办法可以,另外可以保护单元格实现
回复
hydeL 2007-04-28
限定范围为G001-G020是什么意思?

意思是 从G001到G020这间的数!

前2个应该可以用菜单-数据-有效性来实现?具体怎么实现呢?
回复
thoughter 2007-04-28
前2个应该可以用菜单-数据-有效性来实现
最后一个合计可能就得用VBA了,工具-宏-Visual Basic编辑器,在对应Sheet中增加一个
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Cells(1, 1) + Cells(2, 1) + Cells(3, 1) > 20 Then '这是A1+B1+C1>20的条件,具体条件根据需要写
MsgBox "合计超范围!"
End If
End Sub
回复
thoughter 2007-04-28
限定范围为G001-G020是什么意思?
是这20个特定字符串还是指只能输20个单元格中的值之一还是还是20个单元格中最大到最小值之间的范围?
A2B2必须一致的话是否能用公式呢?这样只需要输一次,也不会出错
回复
相关推荐
发帖
Microsoft Office应用
创建于2007-08-02

6158

社区成员

Microsoft Office应用
申请成为版主
帖子事件
创建了帖子
2007-04-28 01:27
社区公告
暂无公告