『壹』 excel計時器源代碼
這要用到VBA
...
dim t
t=timer
...
msgbox "總運行時間為" & timer-t
...
Visual Basic for Applications(VBA)是Visual Basic的一種宏語言,是微軟開發出來在其桌面應用程序中執行通用的自動化(OLE)任務的編程語言。主要能用來擴展Windows的應用程式功能,特別是Microsoft Office軟體。也可說是一種應用程式視覺化的Basic 腳本。該語言於1993年由微軟公司開發的的應用程序共享一種通用的自動化語言--------Visual Basic For Application(VBA),實際上VBA是寄生於VB應用程序的版本。微軟在1994年發行的Excel5.0版本中,即具備了VBA的宏功能。
『貳』 求excel中sum函數源代碼
問題有點復雜化!
其實,能理解函數語法即可。如:
SUM(number1,number2,
...)
其中,Number1,
number2,
...
為
1
到
30
個需要求和的參數。
函數源代碼是計算機編程語言。如:
假設函數:=SUM(A1:A100)
用VBA
編寫的就是(在B1得出求和結果):
Sub
Macro()
Sheet1.[B1]
=
Application.Sum(Sheet1.[A1:A100])
End
Sub
是不是要這樣?
『叄』 求EXCEL源代碼
sheet1的I2輸入公式
=IF(L2="","",INDEX(Sheet2!A:A,MATCH(L2,Sheet2!B:B)))
下拉即可
『肆』 大家好,關於excel的VBA編程問題。 現在的源代碼如下,我想復制指定xls里的名字為XXX工作表,應該怎麼改
Subcpy()
book1=ThisWorkbook.Name
Application.ScreenUpdating=False
Application.DisplayAlerts=False
k=Application.GetOpenFilename("Excel文件,*.xls;*.xlsx;*.xlsm")
Ifk<>""Then
Workbooks.Openk
ActiveWorkbook.Sheets("工作表名").Cells.CopyWorkbooks(book1).Sheets(1).Cells
ActiveWorkbook.Close0
EndIf
Application.ScreenUpdating=False
Application.DisplayAlerts=False
EndSub
『伍』 Excel VBA高手請進,求源代碼
參考下面處理
Excel數據批量轉置(二列轉多列)
『陸』 EXCEL宏的問題
想要知道什麼是宏,以及功能,看下面:
直到90年代早期,使應用程序自動化還是充滿挑戰性的領域.對每個需要自動化的應用程序,人們不得不學習一種不同的自動化語言.例如:可以用EXCEL的宏語言來使EXCEL自動化,使用WORD BASIC使WORD自動化,等等.微軟決定讓它開發出來的應用程序共享一種通用的自動化語言--------Visual Basic For Application(VBA),可以認為VBA是非常流行的應用程序開發語言VISUAL BASIC 的子集.實際上VBA是寄生於VB應用程序的版本.VBA和VB的區別包括如下幾個方面:
1. VB是設計用於創建標準的應用程序,而VBA是使已有的應用程序(EXCEL等)自動化
2. VB具有自己的開發環境,而VBA必須寄生於已有的應用程序.
3. 要運行VB開發的應用程序,用戶不必安裝VB,因為VB開發出的應用程序是可執行文件(*.EXE),而VBA開發的程序必須依賴於它的父應用程序,例如EXCEL.
盡管存在這些不同,VBA和VB在結構上仍然十分相似.事實上,如果你已經了解了VB,會發現學習VBA非常快.相應的,學完VBA會給學習VB打下堅實的基礎.而且,當學會在EXCEL中用VBA創建解決方案後,即已具備在WORD ACCESS OUTLOOK FOXPRO PROWERPOINT 中用VBA創建解決方案的大部分知識.
* VBA一個關鍵特徵是你所學的知識在微軟的一些產品中可以相互轉化.
* VBA可以稱作EXCEL的「遙控器」.
VBA究竟是什麼?更確切地講,它是一種自動化語言,它可以使常用的程序自動化,可以創建自定義的解決方案.
此外,如果你願意,還可以將EXCEL用做開發平台實現應用程序.
Office取得巨大成功的一個重要原因就是VBA,使用VBA可以完成很多事情,基於Excel、Word的VBA小程序不計其數。
VBA程序員很多是業余程序員,正因為業余,解決的卻是工作中需要解決的問題;所以,VBA程序大多都是只是在部門內部或個人使用的小工具。
集成了VBA的其他應用程序也很多,但真正能為程序增色的不多。
大多數人看到了VBA可以自動化一個程序,可以擴展已有程序,但沒有看到在Office中,VBA代碼可以是錄制的,而不是寫出來的,帶來的好處是,學習曲線變得非常緩。如果沒有宏錄制功能,要熟悉某個Office組件的對象模型,絕非一日之功。
以ArcGIS為例,ArcGIS擴展必須使用ArcObject,不管是使用VBA也罷,VB也罷,還是C++也罷。但同時,ArcObject的學習不是一天兩天可以搞定,對於業余程序員,要使用VBA來擴展ArcGIS,幾乎沒有可能;專業程序員又不屑使用VBA;而對於公司,如果要基於ArcObject來擴展ArcGIS,選擇VBA意味著源碼的保護很困難。所以,ArcGIS的VBA就如同雞肋。
不過,學習AO的時候,使用VBA比使用其他語言要容易一些,寫幾行代碼,然後直接運行測試結果,這種互動式的學習應該是最好的學習方法。
ArcGIS以及AO與Office相比,還有一個很大的差別,就是ArcGIS缺乏中等粒度的對象,例如Word和Excel的Range對象。對於Office開發,可以在對底層小粒度對象一無所知的狀況下做很多事情,這就是抽象的力量。常人可以處理的復雜度是有限的,面對數十個對象和幾百個對象,後者需要付出的努力不是10倍,而是數十倍或更多,因為在學習過程中,必須可以把這些對象在大腦中很好的組織,以控制其復雜度。
Visual Basic for Applications(簡稱VBA)是新一代標准宏語言,是基於Visual Basic for Windows 發展而來的。它與傳統的宏語言不同,傳統的宏語言不具有高級語言的特徵,沒有面向對象的程序設計概念和方法。而VBA 提供了面向對象的程序設計方法,提供了相當完整的程序設計語言。VBA 易於學習掌握,可以使用宏記錄器記錄用戶的各種操作並將其轉換為VBA 程序代碼。這樣用戶可以容易地將日常工作轉換為VBA 程序代碼,使工作自動化。因此,對於在工作中需要經常使用Office 套裝軟體的用戶,學用VBA 有助於使工作自動化,提高工作效率。另外,由於VBA 可以直接應用Office 套裝軟體的各項強大功能,所以對於程序設計人員的程序設計和開發更加方便快捷。
VBA 基礎
[編輯本段]
Visual Basic 的應用程序版(VBA)是Microsoft 公司長期追求的目標,使可編程應用軟體得到完美的實現,它作為一種通用的宏語言可被所有的Microsoft 可編程應用軟體所共享。在沒有VBA 以前,一些應用軟體如Excel、Word、Access、Project 等都採用自己的宏語言供用戶開發使用,但每種宏語言都是獨立的,需要用戶專門去學習,它們之間互不兼容,使得應用軟體之間不能在程序上互聯。擁有一種可跨越多個應用軟體,使各應用軟體產品具有高效、靈活且一致性的開發工具是至關重要的。VBA 作為一種新一代的標准宏語言,具有上述跨越多種應用軟體並且具有控制應用軟體對象的能力,使得程序設計人員僅需學習一種統一的標准宏語言,就可以轉換到特定的應用軟體上去,程序設計人員在編程和調試代碼時所看到的是相同的用戶界面,而且VBA 與原應用軟體的宏語言相兼容,以保障用戶在代碼和工作上的投資。有了VBA 以後,多種應用程序共用一種宏語言,節省了程序人員的學習時間,提高了不同應用軟體間的相互開發和調用能力。
在Office 2000 中,宏語言VBA 適用於所有應用程序,包括Word 、 Excel、PowerPoint、Access、Outlook 以及Project。在Office 97 的各應用程序中,新增了Visual Basic 編輯器。這樣,用戶無論是在Excel 中,還是在Word 中以至是在Access 中建立和管理VBA 都具有統一的方法和標准。
在介紹如何利用VBA 提高工作效率之前,首先介紹一些與VBA 有關的基礎知識。
VB 與VBA
[編輯本段]
VBA 是基於Visual Basic 發展而來的,它們具有相似的語言結構。Visual Basic 是Microsoft 的主要圖形界面開發工具,VBA 5.0 (亦即VBA 97)則是Visual Basic 5.0 的子集。Visual Basic 是由Basic 發展而來的第四代語言。Visual Basic 作為一套獨立的 Windows 系統開發工具,可用於開發Windows 環境下的各類應用程序,是一種可視化的、面向對象的、採用事件驅動方式的結構化高級程序設計語言。它具有高效率、簡單易學及功能強大的特點。VB 的程序語言簡單、便捷,利用其事件驅動的編程機制,新穎易用的可視化設計工具,並使用Windows 應用程序介面(API)函數,採用動態鏈接庫(DLL)、動態數據交換(DDE)、對象的鏈接與嵌入(OLE)以及開放式資料庫訪問(ODBC)等技術,可以高效、快速地編制出 Windows 環境下功能強大、圖形界面豐富的應用軟體系統。
Visual Basic 程序很大一部分以可視(Visual)形式實現,這意味著在設計階段就可以看到程序運行的屏幕畫面,用戶可以在設計時能夠方便地改動畫面圖像、大小、顏色等,直到滿意為止。VB 的用戶可以是缺乏Windows 及C 語言開發經驗的專業軟體人員,也可以是具有一定Windows 開發經驗的專業人員,VB 的可視化編程方法使得原來繁瑣枯燥、令人生畏的Windows 應用程序設計變得輕松自如、妙趣橫生。以往的Windows 應用程序開發工具在設計圖形用戶界面時,都是採用編程的方法,並伴隨大量的計算任務,一個大型應用程序約有90%的程序代碼用來處理用戶界面,而且在程序設計過程中不能看到界面顯示的效果,只有在程序執行時才能觀察到,如果界面效果不佳,還需要回到程序中去修改。Visual Basic 提供了新穎的可視化設計工具,巧妙地將Windows 界面設計的復雜性封裝起來,程序開發人員不必再為界面設計而編寫大量程序代碼,僅需採用現有工具按設計者要求的布局,在屏幕上畫出所需界面,並為各圖形對象設置屬性即可,VB 自動產生界面設計代碼,這樣便將事先編制好的控制項可視地連接到一起,構成一個隨時可調整的界面。
VBA 不但繼承了VB 的開發機制,而且VBA 還具有與VB 相似的語言結構,它們的集成開發環境IDE(Intergrated Development Environment)也幾乎相同。但是,經過優化,VBA 專門用於Office 的各應用程序。VB 可運行直接來自Windows 95 或NT 桌面上的應用程序,而VBA 的項目(Project)僅由使用VBA 的Excel、Word、 PowerPoint 等稱為宿主(Host)的Office 應用程序(Application)來調用。
WordBasic 和 Visual Basic
[編輯本段]
在 Word 中,為完成具體的任務,所用的是WordBasic 命令。 WordBasic 是從VBA 擴展而來的一種專用於處理Word 自動功能的語言,下面介紹它們在概念上的區別和它們的宏的相互轉換。
WordBasic 和 Visual Basic 在概念上的區別
VBA 和WordBasic 之間主要的區別是 WordBasic 語言包含由大約 900 個命令組成的一張平面列表,而 Visual Basic 則包含了由對象組成的一個分層結構,每個對象都可提供一組特定方法和屬性(與 WordBasic 中的語句和函數相似)。大多數 WordBasic 命令在任何時候都可運行,而 Visual Basic 只在特定的時候提供有效對象的方法和屬性。
注意:
本書提到的Visual Basic 如果不加特別說明,都是指Visual Basic For Applications。
對象是 Visual Basic 這一宏偉大廈的基石,在 Visual Basic 中進行的幾乎任何操作都與修改對象有關。Word 的任何元素(如文檔、段落、域、書簽等),都可以用 Visual Basic 中的對象來代表。與平面列表中的命令不同,部分對象只能通過其他對象才能加以訪問。例如,可以通過不同的對象(如 Style、Selection 和 Find 對象)來訪問 Font 對象。
應用加粗格式的編程任務就表明了兩種編程語言之間的區別。下面的 WordBasic 指令對所選內容應用加粗格式。
下面的示例是 Visual Basic 語句,也是對所選內容應用加粗格式。
Selection.Font.Bold = True
Visual Basic 不包含 Bold 語句和函數,卻有一個名為 Bold 的屬性(屬性通常指一個對象的特性,例如大小、顏色,或者是否是加粗)。Bold 是 Font 對象的一個屬性。同樣地,Font 是返回一個 Font 對象的 Selection 對象的一個屬性。按照下面的對象結構,可以生成指令,以將加粗格式應用於所選內容。
Bold 屬性是一個 Boolean 類型、可讀寫的屬性。這意味著可以將 Bold 屬性設置為 True 或 False(真或假),也可返回當前值。下面 WordBasic 指令的返回值表明是否將加粗格式應用於所選內容。
x = Bold()
下面的示例是 Visual Basic 語句,返回所選內容的加粗格式的狀態。
x = Selection.Font.Bold
要在 Visual Basic 中執行一個任務,就需要確定合適的對象。例如,如果用戶想應用【字體】對話框中的字元格式,可使用 Font 對象。然後需要確定如何理順從 Application 對象到 Font 對象的 Word 對象結構,以找到包含需要修改的 Font 對象的對象。在確定了該對象的路徑之後(例如,Selection.Font),可使用 Visual Basic 編輯器中的【對象瀏覽器】、【幫助】或【自動列表成員】之類的功能來確定可將什麼屬性和方法應用於該對象。
將 WordBasic 宏轉換為 Visual Basic
宏可使任務自動化,如果在 Word 中重復進行某項工作,可用宏使其自動執行。宏是將一系列的 Word 命令和指令組合在一起,形成一個命令,以實現任務執行的自動化。用戶可創建並執行一個宏,以替代人工進行一系列費時而重復的 Word 操作。事實上,它是一個自定義命令,用來完成所需任務。
宏的一些典型應用如:加速日常編輯和格式設置、組合多個命令、使對話框中的選項更易於訪問、使一系列復雜的任務自動執行等。
Word 提供了兩種創建宏的方法:宏錄制器和 Visual Basic 編輯器。宏錄制器可幫助用戶開始創建宏。Word 在 VBA 編程語言中把宏錄制為一系列的 Word 命令。可在 Visual Basic 編輯器中打開已錄制的宏,修改其中的指令。也可用 Visual Basic 編輯器創建包括 Visual Basic 指令的非常靈活和強有力的宏,這些指令無法採用錄制的方式。
當第一次進行下列任何操作時,Word 2000 將自動轉換 Word 6.x 或 Word 95 模板中的宏。