Excel word ppt office使用技巧大全(DOC格式)-第67部分
按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
strLast = 〃零〃
Else
strLast = Application。WorksheetFunction。Text(strLastvalue; 〃'DBNum2'〃) & 〃角〃
End If
End If
End If
strLastvalue = Right(strBal; 1)
If strLastvalue = 〃0〃 Then
strLast = 〃整〃
Else
strLast = strLast & Application。WorksheetFunction。Text(strLastvalue; 〃'DBNum2'〃) & 〃分〃
End If
End If
strrmbdx = strrmbdx & strLast
Else
strrmbdx = strrmbdx & 〃整〃
End If
rmbdx = a & strrmbdx
End Function
方法 12
364
…………………………………………………………Page 365……………………………………………………………
=IF(ISTEXT(C2);〃〃;〃人民币:〃&TEXT(INT(C2);〃'dbnum2'〃)&〃元
〃&IF(INT(C2*10)…INT(C2)*10=0;〃〃;TEXT(INT(C2*10)…INT(C2)*10;〃'dbnum2'〃)&〃角
〃)&IF(INT(C2*100)…INT(C2*10)*10=0;〃整〃;TEXT(INT(C2*100)…INT(C2*10)*10;〃'dbnum2'〃)&〃
分〃))
〃〃还有很多方法编者没有收集。
中国式的排名 函数应用
RANK 是个排名函数 但有一个问题象上面有两个 100 分 也就是两并列第一 排名就从第三
名开始没有第二名 也许这个美国式的排名 中国式的排名 前面有两个一样的分数并列第一后
是 第二名 怎样用函数实现。
解答:在 B3 中复制如下的数组公式,然后往右复制:
{=SUM(IF(B1=LARGE(IF(LARGE(B1:H1;COLUMN(A1:G1))=IF(ISERROR(LARGE(
C1:I1;COLUMN(A1:G1)));0;LARGE(C1:I1;COLUMN(A1:G1)));0;LARGE(B
1:H1;COLUMN(A1:G1)));COLUMN(A1:G1));COLUMN(A1:G1);0))}
也可换个方式不用数组,在 B3 中复制如下的公式,然后往右复制:
=RANK(B1;B1:H1)+COUNTIF(B1:B1;B1)…1
当做日报表累计数自动加
当做日报表时;怎样让月累计数自动加上? 就是要月累计自动加上今天的当日收入数;今天只
输入当日收入;我想用用前一天的月累计数加上今天的当日收入数为今天的月累计数。情况是
一月一个工作薄;每一个工作薄下 30 个工作表;用每一天的日期为报表名。我想把月累计的公
式写为 =sheet17!c5 中的 17 用 day(now())…1 的值去取代他;该怎么办呢? 以下为报表格
式;谢谢大家帮我想一想。
部门…………………当日收入 ……………………………月累计
团队收入 12。12 123。00 /写字间收入 147;258。00 147。147/房内吧收入 147;258;369。00
解答:=SUM('Sheet1:Sheet30'!C5)
在你需要月汇总的单元格填入上述公式,其作用是将工作表 1 到工作表 30 的“C5”单元格的
值全部累加起来,而“C5”单元格应填入当日的收入数。
又问:月累计的公式写为 =sheet17!c5 中的 17 用 day(now())…1 的值去取代他;该怎么办
呢? ”
答:用公式: =INDIRECT(ADDRESS(1;1;1;1;〃sheet〃&DAY(NOW())…1))
工资条问题
职工工资构成非常复杂,往往超过 10 项,因此每月发工资时要向职工提供一包含工资各构成
部分的项目名称和具体数值的工资条。打印工资条时要求在每个职工的工资条间有一空行便于
彼此裁开。本模板就是用 EXCEL 函数根据工资清单生成一便于分割含有工资细目的工资条表
格。
本工资簿包含两张工资表。第 1 张工资表就是工资清单,称为〃清单〃。它第一行为标题行包括
职工姓名、各工资细目。
第 2 张工作表就是供打印的表,称为〃工资条〃。它应设置为每三行一组,每组第一行为标题,
第二为姓名和各项工资数据,第三行为空白行。就是说整张表被 3 除余 1 的行为标题行,被 3
除余 2 的行为包括职工姓名、各项工资数据的行,能被 3 整除的行为为空行。
365
…………………………………………………………Page 366……………………………………………………………
在某一单元格输入套用函数〃=MOD(ROW();3)〃,它的值就是该单元格所在行被 3 除的余数。因
此用此函数能判别该行是标题行、数据行还是空行。
在 A1 单元格输入公式〃=IF(MOD(ROW();3)=0;〃〃;IF(MOD(ROW();3)=1;清
单!A1;〃value…if…false〃))〃并往下填充,从 A1 单元格开始在 A 列各单元格的值分别为清单
A1 单元格的值即姓名、value…if…false、空白,姓名、value…if…false、空白,。。。。。。。其
中value…if…false 表示 MOD(ROW();3)既不等于 0 又不等于 1 时,即它等于 2 时应取的值。它
可用如下函数来赋值:〃INDEX(清单!A:G;INT((ROW()+4)/3);COLUMN())〃。INDEX()为一查找
函数它的格式为:INDEX(reference;row…num;col…num);其中 reference 为查找的区域,本例
中为清单表中的A 到 G 列,即函数中的〃清单!A:G〃,row…num 为被查找区域中的行序数即函
数中的 INT((ROW()+4)/3),col…num 为被查找区域中的列序数即函数中的 COLUMN()。第2、5、
8。。。。。。。行的行号代入 INT((ROW()+4)/3)正好是 2、3、4。。。。。。,COLUMN()在 A 列为 1。因此
公式〃=INDEX(清单!A:G;INT((ROW()+4)/3);COLUMN())〃输入 A 列后,A2、A5、A8。。。。。。单元
格的值正好是清单 A2、A3、A4。。。。。。;单元格的值。这样,表的完整的公式应为
〃=IF(MOD(ROW();3)=0;〃〃;IF(MOD(ROW();3)=1;清单!A1;INDEX(清
单!A:G;INT((ROW()+4)/3);COLUMN())))〃。把此公式输入A1 单元格,然后向下向右填充得
到了完整的工资条表。
为了表格的美观还应对格式进行设置,一般习惯包括标题、姓名等文字在单元格中要取中,数
字要右置,数字小数点位数也应一致,还有根据个人的爱好设置边框。本表格只需对一至三行
的单元格进行设置,然后通过选择性格式设置完成全表的设置。
本工作簿的特点是 1、不对清单表进行操作保持清单工作表的完整,2、全工作表只有一个公
式通过填充得到全表十分方便。
例如:我的单位不大不小,有 200 多号人。最近领导要求把每个员工个人的工资情况打出来,
分发给每位员工。每个员工的工资条上只能有两行内容:一行是分解的项目内容,如基本工资、
岗位工资、总计等等;另一行是对应第一行的具体工资数额。
可以这样解决:Sheet2
1。为 A1 命名为 K
2。为 A3:A250 命名为 XX
从 A3 贴上主索引;数据要连续中间不允许有空格
3。写公式=VLOOKUP(K;DATA;2;0)
有几个字段写几个;位置随您高兴摆
4。 隐藏A 栏
*********************************************************************************
*****
Sub 打印()
Application。ScreenUpdating = False '屏幕不更新
Dim c As Object '宣告 c 为对象;请准备空间
'xx'。Select '选取变量范围
Set c = ActiveCell '设定 c 对象为作用单元格
Do Until IsEmpty(c。Value) '作 Do 循环直到无值时跳出
'k'。Value = c。Value
Set c = c。Offset(1; 0) '设定 c 往下进一格再取主索引值
Sheets(〃Sheet2〃)。PrintPreview '工作表直接打印改 PrintOut
Loop
366
…………………………………………………………Page 367……………………………………………………………
End Sub
另一回答:我是做人事管理的也遇到过你的问题;我用如下方法解决十分方便;而不用任何代码。
方法的原理是调整打印机的自定义纸张大小到恰好显示一个人的工资条的大小;请按如下:
如:我的 excel 工资表将项目内容放在第一、二行,行高为 20。1 ,用 a4 纸横向打印
1、在页面设置中将上、下边距,页眉、页脚均设为零,
在页面设置……工作表………顶端标题行 中输入 1:2;即将放在
第 一、二行的项目内容设成每页标题行
打印方向为横向
2 、、在文件…………打印………属性………纸张………自定义中将纸张的
宽度=280 (单位:毫米)
长度=2970 (单位:毫米)
3、打印时可选 1………200 页,即可打印 200 人的工资条,一张 a4 可打 10 人
确定后预览,可调整下边距至每页显示一张工资条
我的解决办法:我只用了一个公式:
if(mod(row();3)=0;〃〃;if(mod(row)();3)=1;sheet1!a1;index(sheet1!a:g;int((row()+4/3);cllolumn())))
你试一下
(解释:int((row()+4/3) 是这个意思:一个工资表,有列标题,接下来是工资记录。而我在此表
基础上,加一个自动生 成的工资 条表, mod(row();3)=0 ,在此表上用这个表示第三行保留空
白行; if(mod(row)();3)=1;sheet1!a1,表示是第一行取标题列;
index(sheet1!a:g;int((row()+4/3);column() )这是关键的地方:是指它不是第一行,也不三倍数
的行,是记录 行的表示,你想第二行显示记录,则 2+4/3=2 取工资 表的第二行记录;第五
行显示记录,则 5+4/3=3 取工资 表的第三行记录;第八行显示记录,则 8+4/3=4 取工资 表
的第四行记录;第十一行显示记录,则 11+4/3=5 取工资 表的第五行记录;这个公式你可以
根据具体情况变化:尤其是((row()+4/3); 中的4 这个数字,
定制单元格数字显示格式
定制单元格数字显示格式,先选择要定制的单元格或区域,》单击鼠标右键》单元格格式》
选择数字‘选项》选择 自定义‘》在―类型‖ 中输入自定义的数字格式。
如何输入自定义的数字格式:需要先知道自定义格式中那些常用符号的含意,具体可以先
不选择 自定义‘,而选择其它已有分类观看示例‘,以便得知符号的意义。
比如:先选择百分比‘然后马上选择 自定义‘,会发现类型‘中出现0。00%‘,这就是百分
比的定义法,把它改成小数位3 位的百分比显示法只要把0。00%‘改成0。000%‘就好了,把它改
成红色的百分比显示法只要把0。00%‘改成 '红色'0。00%‘就好了。
关于数据引用的问题
在一个工作簿中,假如 A 工作表中的单元格 E8 被 B 工作表中的某单元格引用,现在由于 A 工
作表中插入了行,原来的 E8 现在可能是 E28;结果造成 B 工作表引用数据错误,请问:如何可
以使B 工作表中的引用随着 A 表的变化也作相应的自动调整?
回答:利用“相对引用”来实现,“相对引用”是Excel 中默认的引用方式
例:在工作表 Sheet1 中C2单元格为5,D2单元格为6,在工作表Sheet2 中C3单元格中
输入“=Sheet1!C2+Sheet1!D2”,如果把
C2单元格剪切到C3,那么在工作表Sheet2 中C3单元格中的公式就自动变为“=
Sheet1!C3+Sheet1!D2”
367
…………………………………………………………Page 368……………………………………………………………
如何使 EXCEL 应用程序锁定不让人打开
请问我以下的操作应再如何修改成如密码输入错误则退出 EXCEL。这是我编写在
PERSONAL。XLS 中的一个模块。代码如下;请各高手帮忙为小弟指点一二;不甚感激!
Sub auto_Open()
MsgBox 〃热列欢迎来海源;你吃饱了吗?〃
If Application。InputBox(〃请输入操作权限密码:123〃) = 123 Then
Else
'。。。。。(在这一步中;我想退出 EXCEL;但无法实现请高手指点一二)
End If
End Sub
解答:Private Sub Workbook_Open()
MsgBox 〃热列欢迎来海源;你吃饱了吗?〃
If Application。InputBox(〃请输入操作权限密码:123〃) = 123 Then
Exit Sub
Else
Application。Quit
End If
End Sub
程香宙的修改:
Sub auto_Open()
MsgBox 〃程香宙欢迎你的到来〃; vbQuestion; 〃联系电话:013838751304〃
If Application。InputBox(〃请输入操作权限密码:〃; 〃系统登陆〃) = 123 Then
Else
MsgBox 〃密码错误;请重输〃; vbCritical + vbOKOnly; 〃你还有两次机会〃
If Application。InputBox(〃请输入操作权限密码:〃; 〃系统登陆