vba中如何強行終止運行程序 vba溢出堆??臻g怎么解決?
vba溢出堆??臻g怎么解決?vba溢出堆??臻g的第一種解決方案是使用enableEvents來控制事件的響應。第二種方法是獲取更多可用的局部變量空間,甚至需要升級硬件。唐 別忘了在那之前備份。堆棧是內(nèi)
vba溢出堆棧空間怎么解決?
vba溢出堆??臻g的第一種解決方案是使用enableEvents來控制事件的響應。
第二種方法是獲取更多可用的局部變量空間,甚至需要升級硬件。唐 別忘了在那之前備份。
堆棧是內(nèi)存的一個工作區(qū),它會隨著程序運行的需要而增長或收縮。此錯誤有以下原因和解決方案:
活動的Function、Sub或Property過程調(diào)用太多。
檢查進程是否嵌套過深,尤其是遞歸進程,即調(diào)用自己的進程。為了確??梢越K止遞歸,請使用“調(diào)用”對話框查看活動進程(在堆棧上)。
局部變量需要更多可用的局部變量空間。
嘗試在模塊級別聲明一些變量。可以通過在靜態(tài)過程中的Property、Sub或Function關鍵字之前添加Static來聲明所有變量,也可以使用Static語句來聲明過程中的每個靜態(tài)變量。
固定長度字符串太多。
在這個過程中可以快速訪問固定長度的字符串,這比可變長度的字符串使用更多的堆??臻g,因為字符串數(shù)據(jù)本身是放在堆棧上的。嘗試將一些定長字符串重新定義為變長字符串。當聲明變長字符串時,只有字符串描述符(而不是數(shù)據(jù)本身)被放入堆棧。您可以在沒有堆??臻g的情況下在模塊級別定義字符串。在模塊級別,該變量默認是公共的,因此模塊上的所有進程都可以看到該字符串。
DoEvents函數(shù)調(diào)用嵌套過多。
使用“調(diào)用”對話框查看堆棧上的活動進程。
該代碼導致了一系列事件。
所謂事件級聯(lián)就是引起一個事件,這個事件會調(diào)用已經(jīng)在堆棧上的事件過程。事件級聯(lián)類似于無法停止的遞歸過程調(diào)用,但這并不明顯,因為它是由Visual Basic調(diào)用的,而不是在代碼中。使用“調(diào)用”對話框查看哪些過程是活動的(在堆棧上)。
顯示“調(diào)用”對話框,并在“調(diào)試”窗口中,選擇進程框右側的“調(diào)用”按鈕或選擇“調(diào)用”命令。有關更多信息,請選擇有問題的項目,然后按F1(在Windows中)或幫助(在Macintosh中)。
怎么用VBA實現(xiàn)篩選,復制功能?
1。選擇要刪除條件格式的單元格;2。選擇格式/條件格式…在彈出的條件格式設置對話框中點擊刪除?;蛘?。選擇沒有條件格式的單元格;2。按下工具欄中的格式刷,以拷貝您想要刪除條件格式的單元格的格式。
如果要刪除工作表中同一條件格式的全部或部分內(nèi)容,可以先按Ctrl G,然后在對話框中按定位條件,定位條件對話框?qū)@示(參見圖5)。在此框中,選擇條件格式,然后根據(jù)需要選擇全部或相同,然后按確定返回到編輯窗口。此時選擇所有有條件格式的單元格,然后按照上面提到的第一種刪除方法刪除。
圖5自動工作日計算的工作量當然可以按 "工作日 ",但是每個月的天數(shù)不一樣,周六周日也不一樣。想知道一個月到底有多少個工作日,可以向Excel求助!一知半解的標準工作日是指法律規(guī)定的企業(yè)、事業(yè)單位、機關、團體等單位在正常情況下普遍實行的工作日。
一般來說,是指除國家法定節(jié)假日(周末、新年 國慶節(jié)、五一節(jié)、國慶節(jié)、春節(jié)等。).任務分析由于每個月的總天數(shù)和雙休日的分布是不一樣的,而且春節(jié)是農(nóng)歷的節(jié)假日,單純用Excel函數(shù)計算是達不到要求的。首先,我們使用Excel "分析工具庫 "計算 "準工作日 ",然后再考慮特殊的農(nóng)歷節(jié)日。
這樣,數(shù)量 "工作日 "可以精確計算。有請networkdays()函數(shù)。通常,這個函數(shù)可以 在Excel中找不到。唐 別擔心,跟我來。單擊工具→外接程序,在彈出的外接程序?qū)υ捒蛑羞x中分析工具庫,然后單擊確定。將Offic: B6) "在B8單元格中是20。實際上,2004年10月2日和3日是周六和周日,所以按照我們的習慣,我們會休假,最后我們在10月份得到的上班天數(shù)只有18天,而不是networkdays()函數(shù)計算的20天。
雖然我們可以 如果不能通過直接應用networkdays()函數(shù)來獲得正確的工作日數(shù),我們?nèi)匀豢梢酝ㄟ^修改該函數(shù)來獲得。圖3是我們的例子,展示了如何一步一步地接近我們的目標。步驟1:將A列定義為月份。選擇A列,從右鍵菜單中選擇格式單元格,在數(shù)字頁簽中選擇類別為自定義,在類型中輸入yyyy-mm格式,點擊確定退出。
第二步:設計b列的公式,首先直接用networkdays()函數(shù)計算,只考慮本月周末之后的日子。雖然可以直接使用這個函數(shù),但是需要知道每個月的開始日期和結束日期。開始日期當然是每個月的1號,所以使用 "日期(年(A2),月(A2),1)。
結束日期應該是每個月的最后一天,這個有點難。是30號還是31號還是28號還是29號?需要復雜的判斷關系。在這里,我們采用了一種靈活的方法,即當月的最后一天實際上是下月的第一天減去一天,因此我們可以使用 "日期(年(A2),月(A2) 1,1)-1 "。
所以B2的公式是: "網(wǎng)絡天數(shù)(日期(年(A2),月(A2),1),日期(年(A2),月(A2) 1,1)-1);"。第三步:計算除春節(jié)以外的周末。我們知道,國家規(guī)定的公共假日有10天,除了春節(jié)的三天,每年都有變化,其他三天是固定的新年。;國慶節(jié),勞動節(jié)和國慶節(jié)。
所以我們可以用IF函數(shù)判斷月份是不是一月、五月、十月,然后減去相應的公休日,得到不考慮春節(jié)的工作日。所以C2IF(月(A2) 5,B2-3,IF(月(A2) 5,B2-3,IF(月(A2) 1,B2-1,B2))或者使用or()函數(shù)就是C2IF(或者(月(A2) 5,月(A2))。
第四步:考慮春節(jié)。按照常理,春節(jié)的三天只會出現(xiàn)在1月或者2月,也就是說最終的判斷只有在1月和2月。通過萬年歷查詢得到2000年到2010年這十年春節(jié)的分布情況。無獨有偶,沒有一年的春節(jié)是三個月的,也就是說,春節(jié)不是在一月就是在二月,如圖4所示,這就給我們使用IF函數(shù)判斷帶來了方便。
通過判斷年月,減去對應的春節(jié)天數(shù),得到真實的工作日。因此,如果(和(或(年(a2) 2001,年(a2) 2004,年(a2) 2006,年(a2) 2009),月(a2) 1),C2-3,如果(和(或(年(a2)。第四屆(A2)2),C2-3,C2).
步驟5:隱藏過渡列。選擇兩列 "b:c "并選擇 "隱藏 "在右鍵菜單中隱藏過渡柱B和過渡柱C用于計算方便。選中區(qū)域B2:D2,按住填充柄向下拖動填充。只要在A列的任意單元格中輸入月份,就可以在D列中得到該月相應的天數(shù)。;不方便嗎?讓多頁表格自動生成表頭。當我們做的表格有很多頁的時候(比如分數(shù)統(tǒng)計等。),最好每個頁面都加相同的頁眉,方便查看。
如果表格文件的頁數(shù)很少,用手工方法很容易實現(xiàn)。但是當一個表格文件有幾十頁的時候,不僅麻煩,而且容易出錯。那么,有什么辦法可以讓系統(tǒng)自動生成呢?1).在Word 2003中打開Word 2003表格文檔,選擇第一頁上的表格標題,然后單擊 "表格→重復標題行 "。
如果頁眉中有兩行,請選擇前兩行,這樣這兩行的內(nèi)容將用作后續(xù)每一頁的頁眉。2).在Excel 2003 (1)打開Exc: $ 2 "表示第一行和第二行。
在這個例子中,它被設置為 "$ 1 : $ 2 ",并且表格的每個打印頁將具有與第一行和第二行相同的標題。3).在金山2003中(1)打開金山2003表單文檔,選擇表單,然后單擊 "表單→表單屬性→表單外觀。(2)在調(diào)出的表格外觀屬性窗口中,選擇外觀設置為行列式1,設置標題行的重復行數(shù),本例中設置為2,即在表格的每一頁自動生成一個與第一行和第二行內(nèi)容相同的表頭。
4).在金山表單2003中(1)打開金山表單2003并點擊 "文件→頁面設置。(2)在調(diào)用的頁面設置菜單中,選擇工作表標簽,并在頂部標題行中輸入標題行數(shù),即 "2 "在本例中,也就是說,在表格的每個打印頁上自動生成兩行標題,其內(nèi)容與第一行和第二行相同。
如果表格標題在左邊,您可以在 "左側標題列 "專欄。Excel輕松實現(xiàn)自動換行。眾所周知Excel處理數(shù)據(jù)很方便,但是在單元格中換行就有點不方便了。不知道大家有沒有遇到過這樣的問題?通過摸索,以下四種方法可以輕松實現(xiàn)單元格內(nèi)的單詞換行。
1。輸入數(shù)據(jù)隨時換行。如果用戶在輸入數(shù)據(jù)時想要換行,他們可以通過按Alt Enter輕松地完成。該方法還可以使輸入的單元格在光標位置換行。2。單元格區(qū)域中的換行符將一個長行變成一個段落,并在指定區(qū)域中換行符。
舉個例子,如果A10內(nèi)容很長,你想在A到C欄顯示,步驟如下:選擇地區(qū)A10: C12(先選擇A10),選擇編輯→填充→重新排序內(nèi)容,A10內(nèi)容將分布在A10: C12地區(qū)。這種方法特別適用于表格中的注釋。3。調(diào)整單元格格式,將選中的單元格換行,選擇格式→單元格,在彈出的對話框中點擊對齊,選中自動換行復選框,點擊確定。
4。文本框的巧妙運用單擊“視圖”菜單,在“工具欄”命令中選擇“繪圖”工具欄,然后單擊該工具欄的文本框。為了保證文本框的邊界與工作表的網(wǎng)格線重合,需要按住Alt鍵的同時插入文本框,然后可以在文本框中輸入任意內(nèi)容。Excel智能化的n個捷徑智能判斷Excel工作表中的Excel重復數(shù)據(jù)。如果要判斷每個單元格中的數(shù)據(jù)是否重復,并統(tǒng)計重復行數(shù),可以使用函數(shù)使其自動執(zhí)行操作。
假設您要對單元格A1 ~ A12中顯示的數(shù)據(jù)進行計數(shù)。首先,在單元格B1中輸入代碼:if(countif($ a $ 1 echof 7-@ .com $ a $ 13,vlookup (a1,a2 : $ a $ 13,1,0)) GT1,Concatenate(