Excel VBA 程式設計教學:活頁簿、工作表與儲存格 - GT Wang

文章推薦指數: 80 %
投票人數:10人

Excel VAL程式設計教學寫得不錯我想應用在股票每天5日平均值減60日平均值每天的值計算就不用很辛苦計算請教每天5日平均值60日平均值如何由看盤中取得? Blogger舊站 關於 Facebook Flickr 物聯網 網站架設 程式設計 統計 素食 特價優惠 宗教 物聯網 網站架設 程式設計 統計 素食 特價優惠 宗教 ExcelVBA程式設計教學:活頁簿、工作表與儲存格 2015/12/24 17則留言 這裡介紹如何使用ExcelVBA來控制活頁簿、工作表與儲存格的資料,用程式自動產生表格。

在開始之前,請先設定好ExcelVBA的開發環境,啟用開發人員工具,並且開啟ExcelVBA的程式編輯視窗。

儲存格 首先我們介紹如何在VBA中控制Excel的儲存格。

Range物件 在VBA中我們可以透過Range物件來選取並操作儲存格,這個物件是ExcelVBA最重要的物件之一,使用頻率相當高,以下是各種使用方式。

若要將目前工作表的A1儲存格的內容設為Hello,可以這樣寫: Range("A1").Value="Hello" Range物件的第一個參數放置儲存格的位置,這樣就可以將這個位置的儲存格抓出來,而Value屬性就是這個儲存格的內容,直接將Value指定成新的資料就可以更新Excel儲存格內容。

我們可以自己新增一個副程式(Sub),把這一行指令放在裡面來執行: VBA副程式(Sub) 執行之後,A1儲存格的內容就會變成Hello。

執行結果 通常在開發ExcelVBA程式的時候,都會同時開啟Excel與VBA的視窗,一邊開發程式一邊進行測試,而這樣的開發環境在每一台有安裝Office的電腦都有,不需要另外安裝,既方便又好用。

Excel與VBA視窗 如果要一次更改多個連續的儲存格內容,可以在Range的參數中指定儲存格的範圍,例如: Range("A1:A4").Value=5 這樣就會把A1到A4儲存格的內容都更改為5: Excel活頁簿 如果範圍不是連續的,也可以一次使用多個範圍來指定: Range("A1:A2,B3:C4").Value=10 這樣就可以更改任意範圍的儲存格內容: Excel活頁簿 Range也可以用來處理自訂名稱的儲存格,只要在Range的參數中指定儲存格的名稱即可,例如: Range("MyCell").Value=123 這樣MyCell這個儲存格的內容就會被指定為123: Excel活頁簿 繼續閱讀:12345 Windows,程式設計 ExcelOfficeVBA G.T.Wang 個人使用Linux經驗長達十餘年,樂於分享各種自由軟體技術與實作文章。

17留言 新增留言→ CS 想請教,一個已經定義名稱的欄位,要如何用巨集填入值?謝謝 2016/01/28 回覆 G.T.Wang 使用Range,例如Range("MyCell").Value=123。

這部分已經加入文章中。

2016/01/28 回覆 chh 一個已經定義名稱的欄位,要如何用巨集填入值 那麼,該如何在VBA直接定義”MyCell” 2021/09/05 回覆 CS Thankyouverymuch… 2016/02/01 回覆 JC 想請問 因公司需用VBA抓取測試出來的資料做成曲線圖,再相互比較 做比對,但這個程式共用於許多測試出來的檔案,每個檔案的 工作表以檔名做命名,讓這個VBA程式,可以適用於各個檔案; 我試過很多工作表指定,但都無法抓到值,除非在VBA程式中直 接輸入檔名,就可以畫出曲線…是否可幫忙指教一下,要如何 修正呢? 2016/03/03 回覆 G.T.Wang 沒有看到實際的程式與資料,我也不知道該如何處理。

2016/03/03 回覆 Alex 請問大大: 我有兩欄資訊(A欄與C欄),只知道A欄的資訊列數少與C欄,利用Sheets(1).UsedRange.Columns.Count可知C欄最大列數,我要怎麼知道A欄的最大列數呢!? ex AC ──────── 12 23 4 C欄最大列數為3,A欄要如何取的最大列數(2)!? 2016/10/14 回覆 Alex 系統自動把空白吃掉了!!! 那改問這個吧 “C欄的資訊列數少與A欄”要怎麼知道A欄的最大列數呢!?(反正都是一樣的) ex AC ──────── 12 23 4 A欄最大列數為3,C欄要如何取的最大列數(2)!? 2016/10/14 回覆 drmilk 正在學VBA,剛好可以解答 Y=cells(rows.count,”A”).end(xlup).row‘從下向上算有多少列 debug.print“Y=”,Y‘及時運算視窗可以看到最大A欄Y軸有多少列 or Msgbox“Y=”,Y 2021/02/23 回覆 IRONER 我完全不會這些程式的東西。

但看你寫的文章很容易明白。

感謝您。

2016/10/31 回覆 Mw 您好想請問一下如果我要做一按下按鈕儲存格計算a1+b1並顯示在c1 我該如何做呢感謝! 2017/04/06 回覆 Jimchang ExcelVAL程式設計教學寫得不錯我想應用在股票每天5日平均值減60日平均值每天的值計算就不用很辛苦計算 請教每天5日平均值60日平均值如何由看盤中取得? 感恩喔! 2017/06/19 回覆 Eric 淺顯易懂,謝謝分享! 2018/11/21 回覆 PJ 請問: 我的工作表以數字命名,程式是放在Macro.xlsm檔案中,指定B1=檔名,B2=工作表名(儲存格值為1) 當我指定Sh.Activate(指定到”1″的工作表),vba會判定為從前面開始數第一個工作表,請問VBA該如何寫才不會被誤判? Sub測試II() DimWbAsWorkbook,ShAsWorksheet SetWb=Workbooks(Workbooks(“Macro.xlsm”).Worksheets(“VBA”).Range(“B1”).Value)‘儲存格的值為檔案名稱 SetSh=Wb.Worksheets(Worksheets(“VBA”).Range(“B2”).Value)‘儲存格的值為工作表名稱 Sh.Activate‘Range(“B2”)的值為數字,也就是工作表名稱 ‘Wb.Worksheets(Sh.Name).Activate‘或寫這樣,也還是會跑到第一個工作表 EndSub 2019/04/23 回覆 AlanChen 請問針對ExcelVBA程式設計教學課程中的第16~21項,能提供課程內容嗎?由衷感謝! 16.資料繪圖(Charts) 17.Application物件 18.ActiveX控制項 19.使用者表單(Userform) 20.範例集錦 2019/10/07 回覆 阿宏 大大好:EXCEL的A1及B1有資料,請問有巨集可以在SHEET裡點任意位置(如N3),A!的資料就可以自動填入 2021/04/22 回覆 Andrew DearG.T.WangSir, 1)如何禁止使用者新增或刪減指定欄位,vba程式怎樣寫?請賜教. 2)如何禁止使用者利用activecommandbar,vba程式怎樣寫?請賜教. 2021/11/03 回覆 LeaveaReply取消回覆 留言* Name* Email* Website 搜尋 分類Arduino(5) BeagleBoneBlack(1) DIY(54) Linux(317) macOS(33) Octave(15) Perl(12) R(47) Windows(98) WordPress(16) 個人(15) 免費(35) 兒童(30) 實用工具(85) 手機(13) 技巧(45) 有趣(99) 樹莓派(57) 物聯網(55) 玄學(11) 生活(209) 程式設計(137) 統計學(8) 網頁空間(36) 網頁開發(128) 虛擬化(7) 農業(42) 遊戲(9) 開箱(132) 雲端(4) 宗教 如何戒邪淫、遠離婚外情 戒淫寶典:《壽康寶鑑》白話有聲書 公益 台灣世界展望會 Yahoo奇摩公益 家扶基金會 igiving公益網 智邦公益網 ©2022G.T.Wang



請為這篇文章評分?