友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
第三电子书 返回本书目录 加入书签 我的书架 我的书签 TXT全本下载 『收藏到我的浏览器』

Excel word ppt office使用技巧大全(DOC格式)-第66部分

快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!


d_date  日期中月数的差。忽略日期中的日和年。〃YD〃 start_date 与 end_date  日期中天数的 

差。忽略日期中的年。   

批注:Microsoft Excel 按顺序的序列数存盘日期,这样就可以对其进行计算。如果活页簿使 

用  1900  日期系统,则 Excel 会将  1900 年  1 月  1  日储存为序列数  1。而如果活页簿使用  1904  日 

期系统,则 Excel 会将  1904 年  1 月  1  日储存为序列数 0,(而将  1904 年  1 月 2  日储存为序列 

数  1)。例如,在  1900  日期系统中 Excel 将  1998 年  1 月  1  日储存为序列数 35796,因为该日 

期距离  1900 年  1 月  1  日为 35795 天。学习关于 Microsoft Excel 如何储存日期和时间的信息。  

Excel for Windows 和 Excel for Macintosh 使用不同的预设日期系统。有关详细资料,请参阅 N 

OW。   

范例:DATEDIF(〃2001/1/1〃;〃2003/1/1〃;〃Y〃) 等于 2,即周期中有两个整年。  

DATEDIF(〃2001/6/1〃;〃2002/8/15〃;〃D〃) 等于 440,即在 2001 年 6 月  1  日和 2002 年 8 月  15  日 

之间有 440 天。  

DATEDIF(〃2001/6/1〃;〃2002/8/15〃;〃YD〃) 等于 75,即在 6 月  1  日与 8 月  15  日之间有 75 天, 

忽略日期中的年。  

DATEDIF(〃2001/6/1〃;〃2002/8/15〃;〃MD〃) 等于  14,即开始日期  1 和结束日期  15 之间的差,忽 

略日期中的年和月。  

问题2:2011 年 8 月 23  日减去15 个月是什么日期  

解答:=date(2011;8;23)…date(0;15;0)  

问题3 :如何取日期的前两位  

用日期函数 today()显示 25…03…03 即 03 年 3 月 25  日,我想用left(today();2)取 25  日这个数字, 

可是 left 只能用于字符串,不知该如何解决这个问题?  

解答:①=day(now())  

② =day(today())  

③=TEXT(A1;〃dd〃)  

④=LEFTB((TEXT(A1;〃dd…yyyy…mm〃));2)  



                           一个用数组公式计算人数的问题  



年级成绩统计时,要计算 N 列值不小于 360 的 1 班人数,我用数组公式来求,即 

{=sum((A4:A723=BH4)*(N4:N723》=360))},现在的问题是,我想计算值在 359 -320 

之间的 1 班人数,应该怎么写公式?  

解答:{=sum((A4:A723=BH4)*((N4:N723》=320)…(N4:N723》=359)))}  



                           如何将一个单元格复制确定个数  



我在复制单元格时,先选中,再到该格右下角等小加号出现,往下拉,因为我要复制 100 多个, 

经常拉不好,一下就跑到好几百个了,往回拉又过了。感觉不方便,请问有没有好办法,想复 

制多少就多少个。  

解答:①选中要复制的源单元格,在按住 Shift 键的同时移动到想要粘贴的目标单元格,选中 

它。这时就选中了源单元格到目标单元格的竖列。然后单击“编辑”→“填充”→“向下填充”。  

②选中复制单元格………复制………将光标移动到下一个单元格……………将滚动条移动到你想要复制的位 

置…………按下 shift 键……左键单击选中想要复制的单元格…………粘贴  



                                                                            387  


…………………………………………………………Page 388……………………………………………………………

                                        



③还可以用右键填充,到达终止单元时从弹出的菜单中选择你所需要的方式。  

另外无论用哪一键拖曳,不要用劲往下拽,拉到文档窗口与状态栏的边缘,当 EXCEL 在自动 

显示下方行数时,就可停住(不要松开鼠标),只须观察填充柄旁的提示,满足你的要求时, 

即可松开鼠标。  



                                  一个小发现  



分享一下,一个小发现,或许大家可能已经知道,但于我而言,今天无意发现。  

在 EXCEL 中,填充句柄对单元格的复制,相当方便,除了可以用CTRL 和右键拖动外,在按 

下 SHIFT 的同时,使填充句柄的黑色小方块变成键头状(呈调整行高状),此时,将会复制条 

件格式和数据有效性,而原有数据将不会被复制;另外,当 A1 与 A2 都有数据时,按上述方 

法拖动填充句柄,可以在 A1 与 A2         (数值)间插入,但行号不变(即不影响其它列)。  



                              如何汉化英文加载宏  



对于在编码中有的菜单或对话框,可以破解后直接汉化(引号内的内容)  

对于有些在编码中没有菜单的词存在,可以将 ThisWorkBook 属性中的 IsAddin 设成 False ,您 

就会发现〃菜单中的词〃是放在工作表中了  



                               汇总多张表中数据  



如何将多张表中数据汇总,每张表名为日期格式,如“20030901 ”,且日期不一定连续,每张 

表的数据格式相同,而且表会不断的增加,如何设定公式在增加表后自动汇总所有工作表中相 

同位置单元格的数据?  

解答:1、将汇总表移至最后,定义名称  

csht_name=MID(GET。DOCUMENT(1);FIND(〃'〃;GET。DOCUMENT(1))+1;100)&T(NOW())  

sht_name=MID(GET。WORKBOOK(1);FIND(〃'〃;GET。WORKBOOK(1))+1;100)&T(NOW())  

total=SUM(N(INDIRECT(IF(sht_name=csht_name;INDEX(sht_name;1);sht_name)&〃!〃&ADDRE 

SS(ROW();COLUMN()))))…N(INDIRECT(INDEX(sht_name;1)&〃!〃&ADDRESS(ROW();COLUM 

N())))  

在公式单元格中输入:=tatal  

2 、 

total=SUM(N(INDIRECT(INDEX(sht_name;ROW(INDIRECT(〃1:〃&GET。WORKBOOK(4)…1)))& 

〃!〃&ADDRESS(ROW();COLUMN()))))。GET。WORKBOOK(4)为工作薄中的总表数。  

 (N 是什么意思?如果要计算平均值,可否将sum 换成 AVERAGE )  

N 函数是将 INDIRECT 函数生成的数组转为二维数组(不知 excel 中为什么要这样?),否则 

只能计算数组中的第一个值或返回错误。  

不能直接用 AVERAGE 函数,因为中间的个数不同,可用以下的公式定义名称  

avg=(SUM(N(INDIRECT(IF(sht_name=csht_name;INDEX(sht_name;1);sht_name)&〃!〃&ADDRE 

SS(ROW();COLUMN()))))…N(INDIRECT(INDEX(sht_name;1)&〃!〃&ADDRESS(ROW();COLUM 

N()))))/(COLUMNS(sht_name)…1)输入=avg 即为平均值。  



                              去掉工作表中的公式  



工作表中含有大量公式,在数据处理完后,想去掉这些公式,仅保留数值另存,相于:       选 

中全表—复制— (在原位置)选择性粘贴—数值。请问用 VBA 语句如何编写?  



                                                                       388  


…………………………………………………………Page 389……………………………………………………………

                                                          



     解答:請參考  



           With  Cells  



                 。Copy  



                 。PasteSpecial  Paste:=xlPastevalues  



                 。Cells(1;  1)。Select  



                 Application。CutCopyMode  =  False  



           End  With  



2、For Each x in 所有公式单元格  

        If Not x。Formula = 〃〃 Then  

            数值 = x。value  

            x。Formula = 〃〃  

            x。value = 数值  

        End If  

Next  



                           工作薄打开后个一分钟自动保存关闭,怎么写代码  



1、        在 thiswork 中写入代码:  



     Private  Sub  Workbook_Open()  



             Me。RefreshAll  



             Application。OnTime  Now  +  Timevalue (〃00:01:00〃);  〃Close_Me〃  



     End  Sub  



     添加模块并写入代码:  



     Sub  Close_Me()  



             ThisWorkbook。Save  



             ThisWorkbook。Close  



     End  Sub  



                                                                                                       389  


…………………………………………………………Page 390……………………………………………………………

                                                                  



                       我想把一个 sheet 拷贝后选择性粘贴为一个新的 sheet;怎么做  



答:添加模块:  

Sub test()  

        ThisWorkbook。Save  

        Sheet1。Move  

        With ActiveWorkbook。ActiveSheet。Cells  

                。Copy  

                。PasteSpecial Paste:=xlPasteValues  

                。Cells(1; 1)。Select  

                Application。CutCopyMode = False  

        End With  

        ThisWorkbook。Saved = True  

        ThisWorkbook。Close  

End Sub  



                                                如何利用列标自动求和  



当光标指在F1 时;能否利用 COLUMN()求 A1…E1 和,当光标指在 G1 时;能否利用 COLUMN() 

求 A1…F1 和;而不用改变公式,比如:SUM(A1:?);就是说写个式子代替?;利用 COLUMN() 自动算 

出最后列  

1、=SUM(A1:INDIRECT(ADDRESS(ROW();COLUMN()…1;4)))  

应该为:=SUM(INDIRECT(〃R1C1:R1C〃&COLUMN()…1;0))  

2 、        用 VB  

新建一个工作表,在 sheet1 的代码窗口中录入如下代码:  

Private Sub Worksheet_SelectionChange(ByVal Target As Range)  

Dim iRow; iCol; iCol_rn As Integer  

Dim Str1 As String  

iRow = Target。Row  

iCol = Target。Column  

        Range(〃M1〃)。ClearContents  

        iCol_rn = 'A1'。End(xlToRight)。Column  

        Str1 = Range(Cells(1; iCol_rn)。Address)。Address  

          

        If Target。Rows。Count 》= 2 Then GoTo Err  

        If iRow = 1 And iCol 》= 2 And iCol  2 And Row 《 21 Then  

        

          a = Target。Value  

          Target。Value = a * 10。22 * 20  

      End If  

      End Sub  

解答:Private Sub Worksheet_Change(ByVal Target As Range)  

    Application。EnableEvents = False    

      If Target。Column = 6 And Target。Row 》 2 And Row 《 21 Then  

        

          a = Target。Value  

          Target。Value = a * 10。22 * 20  

      End If  

      Application。EnableEvents = True  

End Sub  



                                            自动输入 ‘要点’两个字  



工作表中有 500 行数据、F3 中包含红色的字符、F7 中包含红色的字符、。。。。。  

想要达成的目的:如果 F 列的单元格中包含红色的字符,则在其同一行的 G 列中自动输入〃要 

点〃两个字。请高手赐教!!  

解答:有一個取巧的方法;請參考  

    On Error Resume Next  

    For i = 1 To 500  

        Color_Index = Cells(i; 〃F〃)。Font。ColorIndex  

        If IsNull(Color_Index) Then  

            Cells(i; 〃G〃) = 〃要點〃  

        End If  

    Next i  



                                                     表格更新  



是这样的,比如我已经有了一个原始表格 A,这时有人通知我A 表有错误,须加以修改,并给 



                                                                                                            391  


…………………………………………………………Page 392……………………………………………………………

                                                  



我一个表 B,表B 列出了须修改的参数(注意 B 的列数少于A 的列数,因A 的其它列无需修改)。 

现在问题是如何根据表 B 中的新值,在表A 中找到相应位置,并加以修改。比如表B 中列出了 

10002 的JOHN 的身高和体重等值需要修改,如何在A 中找到 10002 的相应位置(身高体重), 

并加以修改。  



解答:建议将表 B 复制至表 A 的 SHEET2,然后执行下列的宏即可                                  

Sub change()  

Dim dd As Range  

Sheets(2)。Select  

lastcell = Range(〃a65536〃)。End(xlUp)。Row  

For Each dd In Range(Cells(2; 1); Cells(lastcell; 1))  

If dd = 〃〃 Then Exit
返回目录 上一页 下一页 回到顶部 0 1
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!