在excel的工具功能中进入vba编辑器执行宏保护公式的功能,即可对指定单元格,或区域单元格进行保护。
具体 *** 作步骤如下:
1、打开EXCEL2003,输入并编辑好相关的数据。
2、编辑相关的统计公式,如在原始数据最后一列增加总分列,并在K4单元格输入:=SUM(D4:J4),然后往下拖拉填充公式。
3、点击EXCEL工作薄的工具——宏
4、在d出的界面选择保护公式,点击执行。
5、最后按Alt+F11在d出的界面输入密码即可。
注意事项:
为了避免别人进入VBA编辑模式查看解锁密码或者乱修改代码,最后一定要记得将宏设置密码。
亲,这是我第二次看到您的问题了,还是晕了许久~~~~~~~~,建议亲以后直接说“事儿”,ABCD的容易晕题~~~我试着总结一下您的要求,您看对不对:
只有当订单数量重量的K列为空且输入数据的时候,做一个判断:如果订单规格也为空,且客户C列和上一行一样,就把订单规格填成和上一行一样。
其它任何条件下,VBA对表格内容不做任何处理。
=====================================================
亲,我的问题是,这个太容易误 *** 作了~~~比方说,您不小心在K列填了内容,VBA又恰好对订单规格做了填充,您没注意;此时觉得不对,又要删除K列内容,订单规格就留在那儿了;再比方说,原来K列有内容,按您的要求修改一下不应该有什么 *** 作,此时您按了Delete键再填入内容,和直接修改内容,有可能会出现不同的结果哦~~~
所以,我担心亲是不是对这个要求的逻辑性都考虑周全了?如果确实考虑周全了,我想,恐怕第一件事儿就是把K列手工备份在别处,当做原始的状态,在写VBA的时候和它做唯一的比对,这样才知道是“填空”还是“修改”~~~
1、汉字在前,数字在后面的情形。可以用MID,min, find三个函数来实现提取里面的数字。如图:在B2输入“=MID(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&“0123456789”)),20)”
2 、把单元格里面所有的数字都提出来。可以使用宏。先打开VBA编辑器。工具——宏——visual basic 编辑器
3、在编辑器里点击插入——模块。在模块那里输入如下代码:
Function zzsz(xStr As String) As StringDim i As IntegerFor i = 1 To Len(xStr)If IsNumeric(Mid(xStr, i, 1)) Then zzsz = zzsz &Mid(xStr, i, 1)NextEnd Function
4、回到工作表,在B2单元格那里输入“=zzsz(A2)”。就可以用VBA把A2单元格里所有的数字都提取出来了,如图所示。
Excel怎么只提取表格中的数字
5、指定从第几个数组提取开始。也就是说在不连续的那些数字中,从第几次出现的数组开始提取。同样在模块那里输入如下代码:
Function GetNums(rCell As Range, num As Integer) As StringDim Arr1() As String, Arr2() As StringDim chr As String, Str As StringDim i As Integer, j As IntegerOn Error GoTo line1
Str = rCell.TextFor i = 1 To Len(Str)chr = Mid(Str, i, 1)If (Asc(chr) 《 48 Or Asc(chr) 》 57) ThenStr = Replace(Str, chr, “ ”)End IfNext
Arr1 = Split(Trim(Str))ReDim Arr2(UBound(Arr1))For i = 0 To UBound(Arr1)If Arr1(i) 《》 “” ThenArr2(j) = Arr1(i)j = j + 1End IfNext
GetNums = IIf(num 《= j, Arr2(num - 1), “”)line1:End Function
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)