1 2 3 4

廣告

網友您好,若是您覺得我寫的工具或文章對您有幫助,
而您或者您的朋友有在博客來購物,可以透過底下連結

如何在博客來購物贊助網站或是點選計數器下方的博客來圖示來讓網站可以永續經營。
顯示具有 vba 標籤的文章。 顯示所有文章
顯示具有 vba 標籤的文章。 顯示所有文章

2018年5月15日 星期二

【Excel工具教學】如何整批新增Excel中的工作表名稱

在論壇有網友問到,除了一筆一筆新增,是否有比較快的方式,我想到的是寫一個小工具,把它要新增的工作表名稱輸入,再按下【新增工作表】就可以自動建立好工作表名稱,底下說明如何使用這個小工具。
網友問題: http://discuz.bestdaylong.com/thread-38186-1-1.html
檔案下載: http://download.bestdaylong.com/f577.htm

1.輸入要新增的excel檔案,還有要新增工作表名稱後,
按下【新增工作表名稱】

2.會將檔案另存成_加上原檔案


3.開啟檔案,看到3個新增的工作表

2018年3月26日 星期一

【ExcelVBA觀念】什麼時候程式碼要放在模組中

這是網友在論壇問的,他要開啟excel檔案後,每1分鐘自動存檔,他程式碼是放在ThisWorkBook,因為他用到Application.OnTime這個多久時間就自動執行某個副程式,所以每次一執行時,就會出現
【無法執行巨集xxx。該巨集可能無法在此活頁簿中使用,或者已停用所有巨集。】,這時候只要新增一個模組,再把程式碼從ThisWorkBook移到模組,程式就可以正常執行。
網友問題連結:http://discuz.bestdaylong.com/thread-38138-1-1.html
範例檔案下載: http://download.bestdaylong.com/f556.htm

1.原本程式放在ThisWorkBook底下

2.執行會出現錯誤

3.將部分程式移到Module1下

4.workbook_open還是放在ThisWorkbook下,這樣執行就不會出錯。

2018年3月7日 星期三

【Excel工具】如何利用Excel做大量建立資料夾

之前寫的在Excel大量複製檔案的Excel,若有子資料夾就要先建立,很不方便,所以就寫了這支建立資料夾的功能,若您是二層的目錄,要先建完第一層目錄,才可以再建第二層,我用一個簡單的例子來說明,假設我要建立3個A.B.C資料夾,3個資料夾內都要有一個1的資料夾,用這個來寫教學。

1.下載excel檔案放在您要開始建立目錄的資料夾

2.先輸入第1層的ABC,按下【建立目錄】

3.執行完畢的畫面

4.有看到3個資料夾

5.前目錄名輸入A\,目錄都輸入1

6.就會在每個目錄下再建立一個1的目錄
範例檔案下載:http://download.bestdaylong.com/f536.htm

2017年12月8日 星期五

Excel VBA如何不寫迴圈就可以知道資料的欄數及列數

之前都是用迴圈去讀取資料有多少筆,後來改成用SpecialCells來讀取,最近發現有網友會在資料範圍外,不小心有輸入資料時,就會造成誤判,最後改成用end從最高列數往前找到最後一筆。

1.在資料範圍外有輸入數字

2.SpecialCells就會找到那一欄

3.改成用End的方式來解決

2017年11月24日 星期五

Excel VBA執行時出現【程式碼的執行已被中斷】的解決方法

有人問我為什麼VBA以前可以執行,現在都要出現【程式碼的執行已被中斷】按【繼續】才可以正常執行,用F8單步偵錯都不會有問題,只要按F5就會出現,把程式停的那一行複製到即時視窗執行也可以正常,使用on error resume也是一樣出現,最後找到的解決是在程式一開始時用Application.EnableCancelKey = xlDisabled,來讓cancel的功能失效,最後執行結束前再使用Application.EnableCancelKey=xlInterrupt將它恢復。

1.出現的錯誤

2.在sub開始之後加入Application.EnableCancelKey = xlDisabled

3.在end sub之前加上Application.EnableCancelKey = xlDisabled

2017年9月27日 星期三

在Excel如何快速速將整批excel已加密密碼取消

因為個資法的關係,寫了一支自動在每個excel設定不同密碼,這支是如果您要將原本設定的密碼取消,就可以使用這支程式,若是您的密碼都相同,只要在第一個檔案後面輸入,或是您的密碼第一碼是0,可以將儲存格設定成文字再輸入有0的密碼。

下載delPassword.xls

2.因為網路下載檔案第一次會出現這個對話框,請點選【啟用編輯】

3.點選【啟用內容】

4.點選【1.選取您要處理竹旳檔案】

5.輸入原本設定密碼,再按【2.開始取消加密Excel檔案】

6.執行完畢會出現對話框,請按【確定】

7.點選【清除檔案列表】會將剛剛所選的清單清除

2017年9月25日 星期一

excel功能區和儲存格格式的跨欄置中差異

在Excel會有二個地方有跨欄置中,一個是功能區的跨欄置中,這個會將儲存格合併成一格,另一個是在儲存格格式的跨欄置中,這個顯示時感覺是合併儲存格的跨欄置中,但是只是一個儲存格有作用,但是在VBA中,若有使用columns來選取欄位時,使用功能區的跨欄置中,會將合併的欄位都選取,而用儲存格格式的跨欄置中,則只會選取單一欄位。

1.用功能區的跨欄置中,是合併儲存格再將值顯示

2.利用儲存格格式的水平【跨欄置中】,則只有選取單一儲存格

3.利用VBA的columns選取單一欄時,會將有合併存格的欄位都選取

4.另一個只會選取一欄

2017年7月3日 星期一

Excel如何利用range.find找到公式並修改

網友問到如何找到某一個公式例如sum,並在這個公式前面加上函數round,因為find會有找不到的時候,要用IS Nothing是表示找不到,若找到再將公式換成您想要的公式。
  
1.原本公式=sum(A2:A6)


2.xlFormualas是代表公式
  
3.執行後公式已經改變
檔案下載: http://download.bestdaylong.com/f442.htm  尋找公式並取代的範例

2017年5月2日 星期二

如何解決excel VBA出現Class Range 的 Select 方法失敗

最近有網友問我一個問題,他說程式執行結果都OK,為什麼結果沒出來,查看原因是因為他在程式碼中加入on error resume next,這句話的意思是,遇到錯誤不要理它,直接跳到下一行執行,這一行在您程式開發階段儘量不要使用,因為程式有錯不跟您給偵錯畫面,您是很難找出錯在那一行,把它的這一行程式註解,再往下執行出現【excel VBA出現Class Range 的  Select 方法失敗】的錯誤,這個錯誤常會出現在要複製工作表內容時,因為工作表沒有切換到要複製或貼上的工作表,就會出現這個問題,可以用.select方法來解決,sheet1.select代表切換到sheet1。

1.將程式中的On Error Resume Next先把它註解

2.程式出現錯誤,按下【偵錯】

3.程式停在Sheet("Reject").Cells.Select

4.在即時運算中輸入? excel.ActiveSheet.name
顯示目前在工作表【操作畫面】

5.將程式改成先切換工作表,再執行cells.select就OK了.

2017年4月19日 星期三

ExcelVBA變數有沒有宣告有差嗎?

我之前學VBA也是有一樣的問題,沒有宣告也可以使用,那為什麼要宣告,所以早期我寫的VBA也是沒有在宣告變數,當網友使用時,跟我說有錯誤時,我才發現它的工作表是用數字命名,偏偏在VBA中的工作表有兩種表示方式,一個是用名稱另一個則是用索引來表示,索引就是數字,所以當您把工作表命名成5,它則會找第5個工作表,若資料表太少,就會出現【陣列索引超出範圍】,或剛好工作表數量有,則執行的結果也是預期的,所以後面在寫VBA時,就很安份的就會宣告變數來告知要使用的型別。
  
1.這是一支VBA在指定工作表(A2)的儲存格A1寫入您要指定的儲存格B2的值
  
2.二支程式只差別在一個有宣告文字型別的strSheetName
  
3.按【沒使用變數】會出垷錯誤,按下【偵錯】
  
4.strSheetName是數字型別
  
5.另一支有宣告的strSheetName則是文字型別
範例檔案下載:http://download.bestdaylong.com/f406.htm

2017年4月5日 星期三

如何使用yahoo帳號在excel寄送email

之前是用gmail當範例,有網友在youtube影片中留言,問是否有yahoo的版本,我本身有yahoo帳號,所以就幫把smtp改成yahoo的smtp,結果出現無法寄出,是無法連線到伺服器,我以為是yahoo密碼記錯了,就用網頁登入,看到一封標題為【未預期的登入舉動】,內容是說明我有啟用【二次登入驗證】要到https://login.yahoo.com/account,登入並取得應用程式密碼,再用那個密碼寄信就可以成功寄出。

1.收到yahoo的通知信

點左邊【帳號安全性】/右邊的【產生應用程式密碼】

3.選【桌面版Outlook】/【Generate】

4.將這組密碼拿到excel去寄信

5.就可以看到yahoo寄出的email

2016年12月6日 星期二

Excel將選取的儲存格範圍最後一碼變成上標字

這是上課學員問的問題,他們公司要將每個料號的最後一碼變成上標字,因為要每個儲存格進去,選取最後一碼,到格式勾上標,原本以為可以用複製格式來解決,最後發現不行,所以就幫他寫了一個將選取範圍的儲存格最後一碼變成上標字,考量到使用方便性,這次可以把檔案另存成增益集,下次同一台電腦,就可以直接用增益集來解決。

1.將下載的檔案開啟後,再另存成增益集

2.在開發人員中/【增益集】/【勾選tmh_tools】/【確定】

3.選取要做上標的儲存格
再按【增益集】/【UpperRight】

4.選取的範圍最後一碼自動變成上標字
檔案下載: http://download.bestdaylong.com/f341.htm

贊助

彰化一整天粉絲團

About Me

我的相片

很多人問我為什麼叫"一整天",其實這是有原故的.有一天看一本書.就是說如何介紹自己.裡面說到如何讓別人對你的名字有印象.就要讓別人跟你的名字或是身體的一些特徵有關.比如很胖.就會被別人取小胖或是胖子.或是跟名字有關的諧音,那天看布袋戲中有一個叫”一頁書”的角色.所以我就想我的名字.可以想出什麼字出來.結果我把我的名字"明和",拆成日月和,日月和在一起,就代表白天晚上都在一起.就取名為"一整天",而這個"一整天"跟我的名字有關也方便別人記憶,後來發現"一整天"這個名詞太常被用,所以就在"一整天"前面加上"彰化"變成"彰化一整天",為什麼要加彰化.因為我老家在彰化,所以以後別人要找我的部落格的話.我都會跟他們說,請到yahoo或是google打"彰化一整天"第一筆出現的就是我的Blog. PS:現在只要輸入"一整天"可以找到.

Google+ Followers