vba指定區(qū)域查找行號(hào) vba如何讀取合并單元格旁邊的數(shù)據(jù)?
vba如何讀取合并單元格旁邊的數(shù)據(jù)?思路:1、在必須讀數(shù)的區(qū)域內(nèi)停止循環(huán)2、在循環(huán)體內(nèi)是需要確定該單元格如何確定為合并單元格,是,無(wú)法讀取合并區(qū)域的第一個(gè)單元格的值,即合并單元格的值,并作全面處理或能
vba如何讀取合并單元格旁邊的數(shù)據(jù)?
思路:1、在必須讀數(shù)的區(qū)域內(nèi)停止循環(huán)2、在循環(huán)體內(nèi)是需要確定該單元格如何確定為合并單元格,是,無(wú)法讀取合并區(qū)域的第一個(gè)單元格的值,即合并單元格的值,并作全面處理或能保存在某單元格,打開循環(huán)否,再讀取文件單元格的值,并作去處理或能保存在某單元格下面是VBA語(yǔ)句,定義r,c是增加程序的通用性,請(qǐng)視具體情況可以修改:Suba()DimrthoughInteger行號(hào)DimcandInteger列號(hào)r2c1IfCells(r,c).MergeCellsThen如何確定是合并單元格Cells(r,c).MergeArea.Cells(1,1)是,再打印合并區(qū)域的第一個(gè)單元格的值,即合并單元格的值Else Cells(r,c)否,可以打印單元格的值EndIf可把if語(yǔ)句塊放進(jìn)循環(huán)中EndSub━━━━━━━━━━━━━━━━━━━━━━━━━
怎么用VBA實(shí)現(xiàn)篩選,復(fù)制功能?
1。你選要?jiǎng)h除條件格式的單元格;2。中,選擇菜單“格式”/“條件格式…”,在系統(tǒng)彈出“條件格式”系統(tǒng)設(shè)置對(duì)話框中按“刪掉”按鈕。或是1。選擇沒(méi)有系統(tǒng)設(shè)置條件格式的單元格;2。按下工具列的格式刷,對(duì)要?jiǎng)h掉條件格式的單元格通過(guò)格式不能復(fù)制。
如要?jiǎng)h除掉工作表中全部或部分完全相同條件格式,可先按“CtrlG”,之后在對(duì)話框中按“定位條件”,系統(tǒng)沒(méi)顯示定位條件對(duì)話框(施禮道圖五),在該框中,選擇“條件格式”,之后,據(jù)不需要中,選擇“徹底”或“是一樣的”,再按“判斷”,回到自己編輯窗口,這時(shí),所有設(shè)置了條件格式的單元格都被全選,再按上面所講的第一種徹底刪除方法刪除掉表就行。
圖自動(dòng)工作日計(jì)算工作量當(dāng)然了以此“工作日”的數(shù)量去安排,但每月的天數(shù)相同,并且周六日也千差萬(wàn)別。如果想確切地明白了一個(gè)月有多少個(gè)工作日,可以不請(qǐng)Excel來(lái)幫我!小知識(shí)標(biāo)準(zhǔn)工作日是指法律規(guī)定的各企業(yè)、事業(yè)、機(jī)關(guān)、團(tuán)體等單位在正常情況下普片什么制度的工作日。
通俗的說(shuō),應(yīng)該是指之外國(guó)家法定節(jié)假日(雙休日、元旦、五一、國(guó)慶、春節(jié)等)之外算正常工作的日期。任務(wù)分析只不過(guò)每月的總天數(shù)和雙休日的分布是完全不同的,不過(guò)春節(jié)是農(nóng)歷的假期,簡(jiǎn)單的地在用Excel函數(shù)去計(jì)算出是滿足的條件不了具體的要求的。我們先在用Excel“分析工具庫(kù)”中的networkdays()函數(shù)計(jì)算出“準(zhǔn)工作日”,再確定其中的特殊的方法農(nóng)歷假日。
這樣就能準(zhǔn)的反算“工作日”的天數(shù)。要請(qǐng)networkdays()函數(shù)通常情況下,在Excel中是一直找不到這個(gè)函數(shù)的。別著急,走!。左鍵單擊“工具→讀取宏”,在彈出的“加載宏”對(duì)話框中復(fù)選“分析工具庫(kù)”,再左鍵單擊“確定”按鈕。將Office的安裝光盤放進(jìn)去光驅(qū),按顯示即可安裝好最終,如圖1。
外來(lái)的和尚念不好經(jīng)networkdays()函數(shù)的語(yǔ)法為:networkdays(Start_date,End_date,Holidays)。其中Start_date它表示結(jié)束日期,End_date為暫時(shí)終止日期,Holidays來(lái)表示一個(gè)或者多個(gè)某個(gè)特定假日序列,也可以按結(jié)構(gòu)單元格語(yǔ)句的。
如圖2,B8單元格公式“networkdays(B2,B3,B4:B6)”最終為20。要知道,2004年的10月2日和3日是星期六和星期天,這樣的話按照我們的習(xí)慣都會(huì)是從串休的,到了最后能夠得到10月份僅有18天單位上班,而不是networkdays()函數(shù)計(jì)算出的20天。
特殊能量假日的處理只不過(guò)說(shuō)再應(yīng)用方法networkdays()函數(shù)并肯定不能換取正確的的工作日天數(shù),但我們應(yīng)該這個(gè)可以對(duì)于函數(shù)的變化來(lái)能得到。圖3是我們的范例,演示相關(guān)了如何能一步步靠近了我們的目標(biāo)。準(zhǔn)備:將A列定義方法為月份。全選A列,在右鍵菜單中你選“設(shè)定單元格格式”,在“數(shù)字”標(biāo)簽中選擇“類型”為“自定義”,“類型”中輸入“yyyy-mm”格式,左鍵單擊“可以確定”按鈕退出。
第二步:設(shè)計(jì)B列公式。先就用networkdays()函數(shù)計(jì)算只確定本月還有雙休日后的天數(shù)。確實(shí)可再可以使用該函數(shù),但不需要明白每月的開始日期和中止日期。就開始日期當(dāng)然是每月的1日,用“date(year(A2),month(A2),1)”表示就可以啦了。
結(jié)束了日期應(yīng)當(dāng)由是每月的最后一天,這就有些難度了,究竟是30日、31日應(yīng)該28日、29日?是需要一個(gè)急切的判斷關(guān)系。這里我們區(qū)分了一個(gè)靈活處理的辦法,是當(dāng)月的最后一天不過(guò)是下月的頭兩天再乘以31天,因此我們也可以用“date(year(A2),month(A2)1,1)-1”來(lái)表示。
只好B2的公式就有了:“networkdays(date(year(A2),month(A2),1),date(year(A2),month(A2)1,1)-1)”。第十步:換算以外春節(jié)以外的雙休日。我們很清楚國(guó)家明文規(guī)定的公眾假日共20天,除此之外春節(jié)的3天是上半年變化的外,其余元旦1天,勞動(dòng)節(jié)3天,國(guó)慶節(jié)3天也是固定設(shè)置的。
并且我們這個(gè)可以用IF函數(shù)對(duì)月份是否是1月、5月和10月做確認(rèn),再來(lái)減去一或者的公眾假日天數(shù),就換取了不決定春節(jié)以外的工作日。于是C2if(month(A2)5,B2-3,if(month(A2)5,B2-3,if(month(A2)1,B2-1,B2)))或者不使用同問(wèn)()函數(shù)是C2if(同問(wèn)(month(A2)5,month(A2)10),B4-3,if(month(A2)1,B4-1,B4))。
第四步:考慮到春節(jié)的問(wèn)題。依據(jù)常識(shí),春節(jié)的三天只會(huì)在1月份的或2月份出現(xiàn),也就是說(shuō)后來(lái)的判斷只東面1、2月份。通過(guò)萬(wàn)年歷查詢得到2000——2010這十年的春節(jié)分布,巧的是本來(lái)沒(méi)有春節(jié)四天跨月份的年份,也就是說(shuō)春節(jié)三天不是什么落在1月份應(yīng)該是落在2月份,如圖4所示,這給我們應(yīng)用形式IF函數(shù)判斷帶來(lái)了方便啊。
實(shí)際對(duì)年份和月份的判斷,減去一你所選的春節(jié)天數(shù),就換取了真正意義上的工作日。但在D2中應(yīng)該鍵入IF(AND(同問(wèn)(YEAR(A2)2001,YEAR(A2)2004,YEAR(A2)2006,YEAR(A2)2009),MONTH(A2)1),C2-3,IF(AND(有.(YEAR(A2)2000,YEAR(A2)2002,YEAR(A2)2003,YEAR(A2)2005,YEAR(A2)2007,YEAR(A2)2008,YEAR(A2)2010),MONTH(A2)2),C2-3,C2))。
第五步:追蹤過(guò)渡要自然列。全選“B:C”這兩列,在右鍵菜單中你選“隱藏”,將中間應(yīng)用于計(jì)算方便所可以使用的過(guò)渡列B和列C隱藏表就行。選中區(qū)域B2:D2,首先按住填充柄向外拖動(dòng)填充后后,只需在A列任一單元格再輸入月份,就也可以在D列我得到該月相對(duì)應(yīng)的天數(shù),會(huì)不會(huì)很方便些?讓多頁(yè)表自動(dòng)生成表頭當(dāng)我們?cè)趺粗谱鞯谋砀裼泻枚囗?yè)的時(shí)候(如成績(jī)統(tǒng)計(jì)表等),為便于日后直接看,建議是一頁(yè)一頁(yè)都直接添加一個(gè)不同的表頭。
要是表格文件頁(yè)數(shù)大多,按照手工裝的方法就可以不非常容易地實(shí)現(xiàn)程序。但當(dāng)一個(gè)表格文件超過(guò)十萬(wàn)數(shù)十頁(yè)的時(shí)候,再一個(gè)一個(gè)地逐頁(yè)添加,不僅僅廢勁,還出錯(cuò)的概率。那么,有沒(méi)辦法讓系統(tǒng)自動(dòng)生成報(bào)表呢?1).在Word2003中打開Word2003表格文檔,選中第一頁(yè)表的表頭,然后再點(diǎn)擊“表格→標(biāo)題行重復(fù)一遍”。
若果表頭有兩行內(nèi)容,選中后開頭兩行,這樣,在后面的每一頁(yè),都會(huì)將這兩行的內(nèi)容作為表頭。2).在Excel2003中(1)然后打開Excel表格文檔,直接點(diǎn)擊“文件→頁(yè)面設(shè)置”。(2)在調(diào)出的“頁(yè)面設(shè)置”對(duì)話框中,你選“工作表”選項(xiàng)卡,在“頂端標(biāo)題行”欄中再輸入表頭行號(hào),其中,“$1”表示第1行,“$1:$2”意思是第1、2行。
本例中可以設(shè)置為“$1:$2”,打印出來(lái)出去的每頁(yè)表格便都有同第1、2兩行則是內(nèi)容的表頭。3).在金山文字2003中(1)先打開金山文字2003表格文檔,選中表格,然后直接點(diǎn)擊“表格→表格屬性→表格外觀”。(2)在打開系統(tǒng)的“表格外觀”屬性窗口上,你選“外觀設(shè)定”為“行列式1”,可以設(shè)置“以標(biāo)題行再重復(fù)一遍會(huì)出現(xiàn)行數(shù)”,本例設(shè)置里為“2”,即在每一頁(yè)表格都自動(dòng)提取與第1、2行內(nèi)容是一樣的的表頭。
4).在金山表格2003中(1)然后打開金山表格2003,再點(diǎn)擊“文件→頁(yè)面設(shè)置”。(2)在主菜單的“頁(yè)面設(shè)置”選單中,選擇“工作表”選項(xiàng)卡,在“頂端標(biāo)題行”輸入輸入表頭行數(shù),本例為“2”,即在打印出來(lái)出來(lái)的每一頁(yè)表格上,都自動(dòng)生成與第1、2行內(nèi)容相同的兩行表頭。
如果不是表格的表頭在左邊,是可以在“左端標(biāo)題列”欄中輸入輸入表頭列數(shù)。Excel很快利用自動(dòng)換行Excel一次性處理數(shù)據(jù)之便捷快速眾人皆知,可在其單元格內(nèi)換行就微顯不便,也不知你有無(wú)也遇上過(guò)此類問(wèn)題?按照梳理,200元以內(nèi)四法便能快速實(shí)現(xiàn)單元格內(nèi)的自動(dòng)啟動(dòng)換行。
1。鍵入數(shù)據(jù)時(shí)刻換行用戶若要在鍵入數(shù)據(jù)時(shí)換行符,只要是從AltEnter組合鍵去掉很快基于。此方法同時(shí)可使已輸入內(nèi)容的單元格在光標(biāo)原先處換行。2。單元格區(qū)域內(nèi)換行將某個(gè)長(zhǎng)行轉(zhuǎn)成段落并在更改區(qū)域內(nèi)下劃線。
或者:A10內(nèi)容很長(zhǎng),欲將其沒(méi)顯示在A列至C列之內(nèi),步驟是:選定區(qū)域A10:C12(先選A10),選擇“編輯→填充→內(nèi)容未來(lái)mvp”,A10內(nèi)容就會(huì)分布特點(diǎn)在A10:C12區(qū)域中。此法不光比較適合主要是用于表格內(nèi)的注釋。3。根據(jù)情況單元格格式換行挑選單元格,選擇“格式→單元格”,在自動(dòng)彈出的對(duì)話框中右鍵單擊“角點(diǎn)”,全選“自動(dòng)出現(xiàn)自動(dòng)換行”復(fù)選框,左鍵單擊[確定]按鈕表就行。
4。文本框的巧用單擊“視圖”菜單,在“工具欄”命令中,選中“繪圖”工具欄,單擊該工具欄的“文本框”,為了可以保證文本框的邊界與工作表網(wǎng)格線不重合,需首先按住Alt鍵的同時(shí)再插入文本框,然后,就可以不在文本框中任意輸入內(nèi)容了。通向Excel智能化的N條捷徑智能確認(rèn)Excel再重復(fù)一遍數(shù)據(jù)在Excel工作表中,若要確定各個(gè)單元格中的數(shù)據(jù)有無(wú)亂詞并統(tǒng)計(jì)出亂詞的行號(hào),可可以使用函數(shù)令其自動(dòng)啟動(dòng)先執(zhí)行操作。
假設(shè),要統(tǒng)計(jì)顯示于A1~A12單元格中的數(shù)據(jù)。簡(jiǎn)單,在B1單元格中輸入代碼:IF(COUNTIF($A$1:$A$13,VLOOKUP(A1,A2:$A$13,1,0))rlm1,CONCATENATE(