計算機軟件

VBA Excel中:示例程序。 在Excel宏

很少有人知道,流行的Microsoft Excel產品的第一個版本出現在1985年。 從那時起,它已經歷了多次修改和全球數百萬用戶的需求。 不過,只有擁有此電子表格的一點點能力,許多工作,甚至不知道他們如何讓生活的能力到Excel編程更簡單。

什麼是VBA

在Excel編程是由始建於微軟最有名的電子表格的Visual Basic應用程序的編程語言來完成。

為了他的功績專家認為相對容易開發。 實踐表明,VBA可以掌握的基礎知識,甚至沒有專業的編程技能誰的用戶。 對於VBA功能包括在辦公應用環境中執行腳本。

該方案的缺點是具有不同版本的兼容性相關的問題。 它們是由程序的VBA代碼是指存在於該產品的新版本,但不是在舊的功能造成的事實。 還有一個很大的缺點和代碼過高開放改變一個陌生人的臉。 但是,Microsoft Office和IBM的Lotus Symphony,用戶可以應用加密入口代碼和密碼設置進行查看。

對象,集合,屬性和方法

這是你需要了解那些誰是要在VBA環境中工作,這些概念。 首先,你必須了解對象是什麼。 在Excel中,在該充當片,一本書,和單元格範圍。 這些對象有特殊的層次結構,即 順從對方。

其中最主要的是應用程序,相應的Excel程序本身。 其次工作簿,工作表和範圍。 例如,提及的單元格A1上的特定片材必須指向的方式,考慮到的層次結構。

對於“收藏”,該組同一個類的對象,其中記錄被賦予ChartObjects的概念。 它的元素也是對象。

接下來的事情 - 性能。 他們是任何對象的必要特徵。 例如,對於範圍 - 是一個值或公式。

方法 - 是要表明你想命令。 當在VBA編寫代碼它們從物體點分離。 例如,如將在後面示出,很經常在“EXCEL”使用細胞命令(1,1)。選擇編程時。 這意味著,有必要選擇具有坐標的單元(1,1),即 A1。

但是,它常常被Selection.ClearContents。 它的實現是清除選定單元格的內容。

如何啟動

首先,你要創建的文件並將其保存,指定一個名稱,然後選擇«圖書Excel中啟用宏的類型。“

然後,轉到VB應用程序,這是足夠用了«Alt鍵»鍵和«F11»的組合。 下一頁:

  • 在窗口頂部的菜單欄中,點擊旁邊的Excel圖標上;
  • Mudule選擇的命令;
  • 繼續點擊上用軟盤的圖標;
  • 寫,也就是說,一個代碼大綱。

它看起來如下:

子節目()

“我們的代碼

結束小組

請注意,行“”我們的代碼“將會以不同的顏色(綠色)被高亮顯示。 這樣做的原因撇號,在字符串,這表明接下來就是註釋的開始交付。

現在,你可以寫任何代碼,並為自己在VBA Excel中的新工具(見示例程序。等)。 當然,那些誰是熟悉Visual Basic的基礎知識,這將是容易得多。 然而,即使是那些沒有誰,如果你希望能夠得到舒適的相當迅速。

在Excel宏

這個名字的背後隱藏著寫的應用程序語言Visual Basic程序。 因此,編程到Excel - 是創建一個宏到所需的代碼。 有了這個功能,微軟的電子表格自主研發,適應特定用戶的需求。 已經處理了如何編寫宏創建模塊,可以使用VBA Excel程序的具體例子進行。 最好是先從最基礎的代碼。

例1

任務:編寫一個程序,將複製的一個單元格的內容的價值,然後寫到另一個。

要做到這一點:

  • 打開選項卡的“查看”;
  • 移動圖標“宏”;
  • 搖到了“錄製宏”;
  • 填寫打開的表單。

為簡單起見,在“宏名”離開“Makros1”,並在“快捷鍵”被插入,例如,HH(這意味著你可以運行示例程序會«按Ctrl + H“突擊隊)。 按Enter鍵。

現在你已經開始錄製宏,彌補了單元格的內容到另一個。 返回到原來的圖標。 點擊“錄製宏”。 這一行動標誌著小程序的完成。

下一頁:

  • 再次移動到字符串“宏”;
  • 在列表中選擇了“宏1”;
  • 點擊“運行”(推出快捷鍵相同的動作開始«按Ctrl + HH»)。

其結果是,已錄製宏期間執行的操作。

這是有道理的,看看代碼是如何模樣。 要做到這一點,回去字符串“宏”,然後單擊“編輯”或“Enter”鍵。 結果,他們發現自己在VBA環境。 實際上,代碼本身位於線之間的宏分Makros1()和End Sub。

如果拷貝已被執行,例如,在從小區C1的小區A1,的代碼行中的一個將看起來像範圍(“C1”)。選擇。 在翻譯中,它看起來像“範圍(”C1“)。選擇”,換言之,使得對VBA Excel中的一個過渡,在單元格C1。

代碼的活動部分結束ActiveSheet.Paste隊。 它意味著記錄在所選擇的小區C1選擇的小區(在此情況下,A1)的內容。

例2

VBA週期有助於在Excel中創建不同的宏。

VBA循環幫助創建不同的宏。 假定有一個函數Y = X +×3 + 3×2 - COS(X)。 你想創建它的圖形宏。 這只能通過使用VBA週期來完成。

對於參數的函數的初始和最終值取X1 = 0和x 2 = 10。 此外,有必要引入一個常數 - 用於步驟值改變參數,並為計數器的初始值。

使用如上所述的相同程序被創建VBA Excel宏的示例。 在這種特殊情況下,代碼如下:

子PROGRAMM()

X1 = 1

X2 = 10

沙格= 0.1

I = 1

別雖然X1

Y = X1 + X1 ^ 2 + 3 * X1 ^ 3 -的Cos(X1)

細胞(I,1)。價值= X1(X1值寫入存儲器與坐標(i,1))

細胞(1,2)。價值= Y(Y值被寫入在使細胞與坐標(i,2))

I = I + 1(有效計數);

X1 = X1 +沙格(自變量被變更為步長);

結束小組。

作為該運行宏的結果“EXCEL”獲得兩列,其中第一個被記錄的值x和第二 - 為y。

然後計劃能夠建立他們的標準為“創先爭優”。

例3

為了實現循環在VBA Excel 2010中,以及在其他版本中,伴隨著已經減少做,當使用的設計為。

考慮創建一個列的程序。 在每個小區中,將被記錄對應的行號的正方形。 對於使用設計將允許記錄它很簡單,不使用計數器。

首先,它必須創建宏,如上所述。 接下來,編寫代碼本身。 我們相信,我們有興趣為10單元格的值。 的代碼如下。

對於i = 1至10下

該命令被傳遞到“人”的語言,如“在一個為增量從1重複到10”。

如果任務接收與方形柱,例如,1和11之間的所有奇數,我們寫:

對於i = 1〜10的步驟1下一步。

在這裡,一步 - 步。 在這種情況下,等於2。 默認情況下,不存在在環字意味著單個步驟。

結果需要被存儲在單元數(i,1)。 然後,每一次我一步將自動增加和行號開始與增加值的週期。 因此,會出現代碼優化。

一般來說,代碼如下所示:

子節目()

對於i = 1至10步驟1(只能寫入,對於i = 1〜10)

細胞(I,1)。價值= I ^ 2(即平方值被寫入到該單元(i,1)ⅰ)

下一步(在某種意義上扮演的計數裝置和另一個週期開始的角色)

結束小組。

如果操作正確,包括記錄和運行宏(見。上面的指令),則它被稱為一個給定的尺寸,將獲得的列(在這種情況下,包括10個細胞的)各一次。

例4

在日常生活中,經常有必要在某些條件下採取這樣或那樣的決定。 在Excel中VBA,沒有他們做不到的。 其中算法的進一步過程中被選擇的,而不是程序的示例最初預定的,最常用的。如果設計...然後(對於困難的情況下)如...則... END如果。

考慮具體情況。 假設你想創建一個“創先爭優”宏與坐標單元(1,1)已被記錄:

1,如果該參數為正;

0如果參數是零;

如圖1所示,如果參數為負。

為“創先爭優”這樣一個宏的創作開始以標準的方式,通過使用“熱”鍵Alt鍵和F11的。 另外寫了下面的代碼:

子節目()

X =細胞(1,1)。價值(該命令指定的細胞含量x坐標的值(1,1))

如果x> 0,則細胞(1,1)。價值= 1

如果x = 0。然後將細胞(1,1)。價值= 0

如果x <0,則細胞(1,1)。價值= -1

結束小組。

它仍然為參數運行宏和“創先爭優”獲得所需的值。

VBA函數

正如你可能已經注意到,在最有名的節目微軟電子表格應用程序是不是太困難。 特別是如果你學會如何使用VBA功能。 總的來說,這個編程語言中的“創先爭優”字,約160函數編寫應用程序創建的。 它們可以分成幾個大組。 它們是:

  • 數學函數。 他們應用到餘弦值的參數獲得,自然對數,因此整體的一部分。
  • 金融功能。 由於在Excel其可用性和使用的編程,即可獲得會計和財務結算的有效工具。
  • 陣列處理功能。 這些包括陣列,IsArray的; LBOUND; UBound函數。
  • VBA Excel函數的線。 這是一個相當大的群體。 它包括,例如,空間函數來創建與多個間隙等於一個整數參數或ASC傳送符號以ANSI代碼的字符串。 所有這些都廣泛使用,並允許您使用在“創先爭優”的字符串創建應用程序更容易使用這些表攜手。
  • 數據類型轉換功能。 例如,CVAR返回表達式參數,將其轉換為變量數據類型。
  • 日期函數。 他們大大拓展“創先爭優”的標準功能。 所以,WEEKDAYNAME函數返回名稱本週其數天的(全部或部分)。 更為有用的是定時器。 他給自午夜起已經過到一天中的特定時刻的秒數。
  • 函數將數值參數轉換成不同的數字系統。 例如10月輸出到數的八進制表示。
  • 格式化功能。 最重要的是格式。 它返回一個變體與根據所述格式的描述中給出的指令格式的表達式。
  • 等等。

這些功能和應用性能的研究將顯著擴大“創先爭優”的範圍。

例5

讓我們試著去解決更複雜的問題。 例如:

丹紙質文檔的企業報告的費用的實際水平。 要求:

  • 通過電子表格“EXCEL”發展其圖案部分;
  • 做一個VBA程序,將要求原始數據來填充它,進行必要的計算,並在相應的單元格的填充模板。

請看下面的解決方案之一。

創建模板

所有操作均在標準表在Excel中進行。 為對輸入數據保留游離細胞 一個月,一年, 標題,消費類公司,費用的數額,他們的營業額水平。 隨著企業(公司),在這方面的不被記錄的報告數量,細胞產生的價值觀和專業名稱的基礎上預先不保留。 工作表分配到一個新的名字。 例如,“Օ報告”。

變量

寫程序模板自動填寫,選擇的符號。 它們將被用於變量:

  • NN-表的當前行數;
  • TP和TF - 計劃和實際營業額;
  • SF和SP - 實際和計劃總成本;
  • IP和IF - 計劃和實際成本水平。

我們用相同的字母,但有一個“前綴»Itog積累總該列。 例如,ItogTP - 關於列標題,如“計劃的營業額。”

使用VBA編程問題的解決方案

使用這個符號,我們獲得的方差的計算公式。 如果你想在%來進行計算,我們有(F - P)/ P * 100,並且在量 - (F - P)。

這些計算的結果可能是最好的只是為了讓“創先爭優”電子表格在相應的單元格。

對於由式ItogP = ItogP + P和ItogF = ItogF + F.得到實際上的結果和預後

對於使用偏差=(ItogF - ItogP)/ ItogP * 100如果計算被執行為百分比,並且如果該合計值 - (ItogF - ItogP)。

結果再一次記錄在相應的單元格,所以沒有必要將它們分配給變量。

開始創建一個程序之前要保存工作簿,例如,名稱為“Otchet1.xls”下。

按“創建報告表”,則必須輸入標題信息後,按只有1次。 你應該知道和其他規則。 特別地,按鈕“添加一條線”必須每次進入每個活動值的表之後被按壓。 輸入所有按下按鈕“完成”,然後在窗口中切換到“創先爭優”所需的數據之後。

現在你知道如何與宏解決問題為Excel。 使用VBA的能力Excel文件(見示例程序,以上),您可能需要在最流行的那一刻,文本編輯器的環境中工作“的話。” 特別是,通過記錄,如在本文的開頭,或通過編寫代碼來創建菜單按鈕,通過它許多上的文字操作可以通過按職責或通過“查看”圖標和“宏”選項卡上的按鍵來完成。

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 zhtw.birmiss.com. Theme powered by WordPress.