公告版位

INDEX與INDIRECT函數將單欄資料轉為三欄與VBA

 

預覽畫面:


常遇到儲存格中若有單欄資料要分為三欄多欄資料,

若不懂的用INDEX等查詢函數,配合COLUMN與ROW參照函數

可能要用非常多的時間才能完成工作,

但若懂得用INDEX或INDIRECT函數

馬上就可以輕易完成結果,當然更大量資料與重複應用,

還是建議用VBA來完成

最後補充說明將三欄再轉為一欄的邏輯說明。

 

通訊錄單欄轉三欄

 

**COLUMN&ROW

 

 

=COLUMN()-2+(ROW()-2)*3

**INDEX

 

=INDEX($A$1:$A$18,COLUMN()-2+(ROW()-2)*3,1)

 

**REPLACE

 

=REPLACE(INDEX($A$1:$A$18,COLUMN()-2+(ROW()-2)*3,1),1,LEN(C$1),"")

 

**INDIRECT與MID函數

 

=MID(INDIRECT("A"&COLUMN()-2+(ROW()-2)*3),LEN(C$1)+1,99)

**VBA程式碼與畫面

 

 

Public Sub 通訊錄_Range輸出()

   '1.列迴圈

   For i = 2 To 7

       '2.欄迴圈

       For j = 3 To 5

           '3.輸出結果

           Cells(i, j) = Range("A" & j - 2 + (i - 2) * 3)

           '4.切割文字

           Cells(i, j) = Mid(Cells(i, j), Len(Cells(1, j)) + 1, 99)

       Next

   Next

End Sub

 

Public Sub 清除()

   Range("C2:E7").ClearContents

End Sub

 

**三欄轉回一欄

=INDEX($C$2:$E$7,INT((ROW()-1)/3)+1,MOD(ROW()-1,3)+1)

 

教學影音(完整版在論壇):

 

教學影音完整版在論壇:

https://groups.google.com/forum/#!forum/scu_excel_vba2_86

 

課程特色:

1.如何將函數轉成VBA2.VBA與資料庫快速結合

 

EXCEL函數 VBA程式設計資料庫是分別屬於三個領域的知識,

但卻是目前大家都需要的一項專業技能,要把三者融合的很好實在非常不容易,

剛好我有近20年的VB程式設計資料庫設計的經驗,

教EXCEL函數與相關課程也有多年,因此清楚如何把最重要的知識教給大家,

ADO資料庫設計的知識非常多,但根據我多年的設計實務經驗,

覺得最重要的是掌握SQL語言,就可以輕易的完成查詢、新增、修改與刪除等功能,

就可以輕易的完成自己想處理的大量資料,大大提高工作效率了!

 

上課用書是:

Excel函數&VBA其實很簡單(http://www.books.com.tw/exep/prod/booksfile.php?item=0010457292)

Excel VBA 與資料庫整合大活用(http://www.books.com.tw/exep/prod/booksfile.php?item=0010463634)

 

完整教學影音DVD申請:http://goo.gl/ZlBZE

論壇:http://groups.google.com/group/labor_excel_vba?hl=zh-TW

 

其他相關學習:

 

函數東吳進修推廣部, EXCEL, EXCEL VBA 函數 程式設計 線上教學 excel vba 教學 excel vba指令教學 vba範例教學excel  excel vba教學視頻 函數教學 excel函數

文章標籤

吳老師 發表在 痞客邦 留言(0) 人氣()

從計算數字個數到留下數字或英文或中文自訂函數

 

預覽畫面:


常遇到儲存格中若有英文(分大小寫)、數字和中文夾雜

但若只要取出其中的數字或英文或中文,

不懂VBA,這個問題將非常麻煩,資料少還可以徒法煉鋼,

慢慢複製貼上,但若資料非常巨量,將是巨大麻煩,

本文分享從計算數字個數開始,

MID、CODE、ROW、IFFERROR、SUM加上陣列計算數字個數,

已經夠複雜的了,若要再取出數字部分,那就更加困難,

建議改為VBA的自訂函數,

除了可以計算數字個數與非數字個數,

亦可留下數字,或英文或中文教您學會如何簡單自訂VBA函數

 

1.計算數字個數公式:

{=SUM(IFERROR((CODE(MID(A2,ROW($1:$99),1))>47)*(CODE(MID(A2,ROW($1:$99),1))

 

2.計算非數字個數公式:

{=SUM(IFERROR((CODE(MID(A2,ROW($1:$99),1))57),0))}

 

**內碼表:

 

1.首字轉編碼

=CODE(MID(A2,1,1))

 

2.判斷48-57間

=(CODE(MID(A2,1,1))>47)*(CODE(MID(A2,1,1))

=IFERROR((CODE(MID(A2,1,1))>47)*(CODE(MID(A2,1,1))

3.數字個數

=SUM(IFERROR((CODE(MID(A2,{1,2,3,4,5,6,7,8,9},1))>47)*(CODE(MID(A2,{1,2,3,4,5,6,7,8,9},1))<58),0))

4.數字個數陣列(Ctrl+Shift+Enter)

{=SUM(IFERROR((CODE(MID(A2,{1,2,3,4,5,6,7,8,9},1))>47)*(CODE(MID(A2,{1,2,3,4,5,6,7,8,9},1))<58),0))}

5.非數字個數

{=SUM(IFERROR((CODE(MID(A2,{1,2,3,4,5,6,7,8,9},1))<=47)+(CODE(MID(A2,{1,2,3,4,5,6,7,8,9},1))>=58),0))}

 

VBA部分:

Public Function 數字個數函數(原始資料)

   Count = 0

   '1.字數迴圈範圍

   For i = 1 To Len(原始資料)

       '2.判斷是否為數字

       If VBA.Asc(Mid(原始資料, i, 1)) > 47 And VBA.Asc(Mid(原始資料, i, 1)) < 58 Then

           '3.如果是就+1

           Count = Count + 1

       End If

   Next

   '4.回傳給自己(數字個數函數)

   數字個數函數 = Count

End Function

Public Function 非數字個數函數(原始資料)

   Count = 0

   '1.字數迴圈範圍

   For i = 1 To Len(原始資料)

       '2.判斷是否為數字

       If VBA.Asc(Mid(原始資料, i, 1)) <= 47 Or VBA.Asc(Mid(原始資料, i, 1)) >= 58 Then

           '3.如果是就+1

           Count = Count + 1

       End If

   Next

   '4.回傳給自己(數字個數函數)

   非數字個數函數 = Count

End Function

Public Function 留下數字函數(原始資料)

   '初始值

   S = ""

   '1.迴圈到字串長度

   For i = 1 To Len(原始資料)

       '2.判斷數字的編碼範圍

       If VBA.Asc(Mid(原始資料, i, 1)) > 47 And VBA.Asc(Mid(原始資料, i, 1)) < 58 Then

           '3.串接數字

           S = S & Mid(原始資料, i, 1)

       End If

   Next

   '4.輸出結果

   留下數字函數 = S

End Function

 

Public Function 留下英文函數(原始資料)

   '初始值

   S = ""

   '1.迴圈到字串長度

   For i = 1 To Len(原始資料)

       '2.判斷數字的編碼範圍

       If VBA.Asc(VBA.UCase(Mid(原始資料, i, 1))) >= 65 And VBA.Asc(VBA.UCase(Mid(原始資料, i, 1))) <= 90 Then

           '3.串接數字

           S = S & Mid(原始資料, i, 1)

       End If

   Next

   '4.輸出結果

   留下英文函數 = S

End Function

 

Public Function 留下中文函數(原始資料)

   原始資料 = Application.WorksheetFunction.Asc(原始資料)

   '初始值

   S = ""

   '1.迴圈到字串長度

   For i = 1 To Len(原始資料)

       '2.判斷數字的編碼範圍

       If VBA.Asc(Mid(原始資料, i, 1)) > 127 Or VBA.Asc(Mid(原始資料, i, 1)) < 0 Then

           '3.串接數字

           S = S & Mid(原始資料, i, 1)

       End If

   Next

   '4.輸出結果

   留下中文函數 = S

End Function

 

教學影音(完整版在論壇):

 

教學影音完整版在論壇:

https://groups.google.com/forum/#!forum/scu_excel_vba2_86

 

課程特色:

1.如何將函數轉成VBA2.VBA與資料庫快速結合

 

EXCEL函數 VBA程式設計資料庫是分別屬於三個領域的知識,

但卻是目前大家都需要的一項專業技能,要把三者融合的很好實在非常不容易,

剛好我有近20年的VB程式設計資料庫設計的經驗,

教EXCEL函數與相關課程也有多年,因此清楚如何把最重要的知識教給大家,

ADO資料庫設計的知識非常多,但根據我多年的設計實務經驗,

覺得最重要的是掌握SQL語言,就可以輕易的完成查詢、新增、修改與刪除等功能,

就可以輕易的完成自己想處理的大量資料,大大提高工作效率了!

 

上課用書是:

Excel函數&VBA其實很簡單(http://www.books.com.tw/exep/prod/booksfile.php?item=0010457292)

Excel VBA 與資料庫整合大活用(http://www.books.com.tw/exep/prod/booksfile.php?item=0010463634)

 

完整教學影音DVD申請:http://goo.gl/ZlBZE

論壇:http://groups.google.com/group/labor_excel_vba?hl=zh-TW

 

其他相關學習:

 

文章標籤

吳老師 發表在 痞客邦 留言(0) 人氣()

分享Android_Studio2.3安裝與免安裝版製作(中央大學)

我完成的Android_Studio2.3免安裝版提供給大家參考:[下載]

 

教學預覽:

 

繼上次發表[ANDROID APP開發與雲端實務應用(第1次上課建置與開發)]

與 [吳老師分享免安裝Android_Studio與設定步驟]

之後就有一段時間沒發文分享 Android APP開發心得,

其實,開發Android APP需要面臨的挑戰還真多,

要把JAVA先學好外,還要面臨因為 Android SDK不斷更新所帶來的改變,

很多學員舊的版本都還沒會就有新版推出

關於到底要不要用最新的版本開發,

我到有點不同意見,由於用了最新的SDK之後,

就自動幫你了家很多的版型或原件,這讓本來已經不熟Android APP更加卻步,

所以初入門的學員還是建議先用舊的2.33來開發,等到基本元件都熟了再來升級也不遲,

因為環境單純比較不會發生無法預期的問題,

其實ECLIPSE、Android SDK、JAVA SDK之間本來就是不同的三家公司

屆時拼裝的環境出錯,到底是誰的問題也很難說,到不如用穩定的舊SDK開發。

另一點就是妳的電腦設備也要夠快,

否則開發Android APP有時會慢到讓你以為你的APP當掉了,

建議至少I5以上的CPU64位元環境8GB以上的RAM,在加上SSD的硬碟

這樣來跑Android APP開發才能至少稱上順,硬體越高階越好囉!

至於最近除了用 ECISPE4.22開發外,也開始將寫好的結果,

Android_Studio可攜版來試試,發現相容性很好,

舊專案轉移到Android_Studio不是什麼大問題

 

Android Studio是個具有圖形化界面的程式碼編輯開發平台,

在AndroidStudio中可以編寫程式碼,

也可以用它來進行專案的儲存、 測試、 除錯、 甚至封裝成執行檔的工作,

當然最重要的是其為免費,因此在Android 官方網站中,

建議使用 Android Studio 整合環境做為 Android 應用程式的開發平台。

 

請先下載Android Studio,最新2.3版安裝版,

https://developer.android.com/studio/install.html

 

下載之後就安裝,然後依照下方步驟完成可攜版的建置:

01_選擇安裝項目,建議全選

02_安裝路徑,建議IDE與SDK分開,但在同一個資料夾

03_回放同資料夾裡的不同目錄

04_執行Studio為32位元,Studio64為64位元

 

完成之後就可以把資料複製貼上到其他電腦,免安裝也可以執行了,

我完成的Android_Studio2.3免安裝版提供給大家參考:[下載]

 

以下為啟動Studio執行檔後的畫面

01_啟動Android_Studio

02_選自訂

03_記得選正確的SDK

04_完成後下載一點檔案

05_等待一下

06_更新最新版的SDK

07_完成開啟選擇新專案

08_完成開啟選擇新專案

09_恭喜進入IDE開發緩竟

10_再來就是增加模擬器

11_模擬器記得用X86的

12_習慣用3.2吋HVGA來跑

13_和ECLIPSE一樣先介面再程式

14_把之前ECLIPSE寫的XML直接貼上

15_用X86模擬器來跑很順

16_練習單選原件(RedioButton)範例

 

上課教學影音:

 

懶人包:http://terry55wu.blogspot.com/p/android.html

 

課程理念與課程介紹:

Android智慧型手機平台,已成為手機上最完整的開放開發平台

人手必備的趨勢下行動上網已達500萬人次以上,手機相關應用,將會超

越PC,比PC更智慧,更貼近個人使用習慣,未來APP將漸取代Web,成

為各產業或政府對外窗口。

如何開發APP,以循序漸進的方式講授Android應用程式架構、圖形介面

開發、測試與除錯等,進而取得證照。

吳老師教學特色:

1.影音複習分享(全程錄影)。

2.能不硬code程式,有程式也會提供畫面。

3.提供業界實務開發經驗。

4.書上沒講到的操作,圖形化工具使用。

5.隨時更新第一手資訊。

 

參考書目

Android 初學特訓班

作者:鄧文淵/總監製;文淵閣工作室/編著

 

相關教學:

Android 教學研習心得分享懶人包:http://terry55wu.blogspot.com/p/android.html

 

 

2016-04-15

吳老師分享免安裝Android_Studio與設定步驟

2015-09-14

Android開發實務下拉清單Spinner與樣板

2015-08-06

如何直接從網頁取得資料並顯示在APP中(APP開發範例台銀匯率)

2015-07-02

Android開發實例第10次Gallery與BroadcastReceiver

2015-07-01

Android開發實例第18次申請開發人員帳號

2015-07-01

Android開發實務範例全民英檢查詢APP

2015-07-01

Android開發實務下拉清單Spinner與樣板

2015-07-01

Android開發實務相簿藝廊Gallery範例

2015-06-15

Android開發實務基本相簿Photoplayer範例

2015-06-15

Android開發實務相簿表格GridView範例

2015-06-13

智慧型手機開發進階SQLite資料庫的存取方式

2015-06-13

智慧型手機進階SQLite資料庫的存取方式

2015-05-25

如何讓圖片有縮放功能(增加TouchImageView類別)

2015-05-18

把Android APP專案轉移Android_Studio分享

2015-03-22

ANDROID APP開發與雲端實務應用(第1次上課建置與開發)

2015-01-28

Android APP程式開發證照教學懶人包(new)

2015-01-16

Android開發實務相簿表格GridView範例

2015-01-16

Android開發實務相簿藝廊Gallery範例

2015-01-16

Android開發實務基本相簿Photoplayer範例

2015-01-16

Android開發實務下拉清單Spinner與樣板

2015-01-16

Android開發實務相簿藝廊Gallery範例

2015-01-16

健行科大Android程式設計實務第4次上課_RadioButton

2015-01-16

Android開發實務Input介面設計與AlertDialog

2015-01-16

Android開發實務多按鈕與多國語系

2015-01-16

Android程式實務第1次上課(馬上建置與開發)

2014-07-13

艾鍗Android行動應用程式設計實務(如何產生功能表選單)

2014-07-13

如何使用ListView 介面元件

2014-07-13

教您學會簡易相簿APP範例Phoneplayer專案

2014-07-13

如何在Android APP的ListView 元件同時加上圖與字

2014-01-12

智慧型手機(Android)設計入門第15次

2014-01-05

智慧型手機(Android)設計入門第14次

2013-09-28

智慧型手機設計入門第2次(102年)

2013-02-03

Android開發實例進階(勞大) 影音DVD完工

2013-01-13

智慧型手機開發實例與證照解析(Android)第18次上課

2013-01-13

建國科大APP產業演講影音(共2小時)

2012-12-22

智慧型手機開發實例與證照解析(Android)第15次上課

2012-12-22

智慧型手機開發實例與證照解析(Android)第11次上課

2012-12-08

智慧型手機開發實例與證照解析(Android)第13次上課

2012-12-08

海洋資通APP開發課程第10次上課

2012-11-18

智慧型手機開發實例與證照解析(Android)第10次上課

2012-11-02

智慧型手機開發實例與證照解析(Android)第9次上課

2012-10-28

智慧型手機開發實例與證照解析(Android)第8次上課

 

完整教學影音DVD分享申請 [連結]

APP與Android程式開發:

**Android_Studio2合集(光碟41、42+送30、34、37) 

 

android app教學,android 開發教學,android 程式教學,android eclipse,android 使用教學,Andriod ,android ,程式教學 ,android ,eclipse ,Android Studio,App開發教學,app開發課程,手機app開發教學

文章標籤

吳老師 發表在 痞客邦 留言(0) 人氣()

EXCEL VBA用XMLHTTP物件抓取外匯資料:

如何用XMLHTTP物件直接抓取台銀外匯的資料到EXCEL中,之前用匯入資料從WEB的方式實際上就是用QueryTable物件效果不彰,主要原因是QueryTable顧名思義,就是查詢原始碼裡的Table標籤,再選擇下載到EXCEL,若是網頁中沒有Table標籤,或是不是表格形式的資料,就有無法下載,或是下載後格式錯亂問題,因此這次分享用XMLHTTP物件代勞

 

預覽畫面:

 

完成畫面:

 


網址:

 

一.利用台銀官網的CSV檔抓取資料

 

1.下載整個資料到A1

Public Sub XMLHTTP()

   '1.載入XMLHTTP物件為HttpReq物件變數

   Set HttpReq = CreateObject("MSXML2.XMLHTTP.3.0")

   '2.用Open方法開啟 CSV檔

   HttpReq.Open "GET", "http://rate.bot.com.tw/xrt/flcsv/0/day", False

   '3.傳送需求給伺服器

   HttpReq.send

   '4.將結果顯示在 A1儲存格

   Range("A1") = HttpReq.responseText

End Sub

2.下載到A欄

Public Sub XMLHTTP_下載到A欄()

   '調整第1欄寬為100

   Columns(1).ColumnWidth = 100

   '建立物件變數HttpReq,取用XMLHTTP物件以抓取網路資料

   Set HttpReq = CreateObject("MSXML2.XMLHTTP.3.0")

   HttpReq.Open "GET", _

   "http://rate.bot.com.tw/xrt/flcsv/0/day", _

   False

   HttpReq.send

   S = HttpReq.responseText

   '切割位置從1開始

   iStart = 1

   '輸出到EXCEL從第1列開始

   i = 1

   Do While VBA.InStr(iStart, S, vbCrLf) <> 0

       '找換行位置

       iEnd = VBA.InStr(iStart, S, vbCrLf)

       '切割一行

       Sline = Mid(S, iStart, iEnd - iStart)

       ''切割位置+1繼續找

       iStart = iEnd + 2

       Cells(i, "A") = Sline

       i = i + 1

   Loop

   '最後一筆沒有換行會少一筆(切割為最後位置+1到最後)

   Sline = Mid(S, iEnd + 1, Len(S))

   Cells(i, "A") = Sline

   '顯示訊息

   MsgBox "下載完畢!!", vbInformation

End Sub

3.先錄製資料剖析巨集,再分割A欄與刪除不要的欄

Sub 資料剖析()

   '1.選取A1

   Range("A1").Select

   '2.CTRL向右下下選取

   Range(Selection, Selection.End(xlDown)).Select

   '3.資料剖析,不匯入遠期

   Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _

       TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _

       Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _

       :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 9), Array(6, 9), _

       Array(7, 9), Array(8, 9), Array(9, 9), Array(10, 9), Array(11, 9), Array(12, 1), Array(13, 1 _

       ), Array(14, 1), Array(15, 9), Array(16, 9), Array(17, 9), Array(18, 9), Array(19, 9), Array _

       (20, 9), Array(21, 9), Array(22, 1)), TrailingMinusNumbers:=True

   '4.自動調整欄寬

   Columns.AutoFit

   '5.選取A1

   Range("A1").Select

End Sub

 

二、下載網頁原始碼與切割資料到EXCEL中:

 

1.右鍵可以檢視原始碼

2.找出原始碼裡的資料頭尾,再用MID函數切割

 

程式碼:

Public Sub XMLHTTP_台銀外匯()

   '建立物件變數HttpReq,取用XMLHTTP物件以抓取網路資料

   Set HttpReq = CreateObject("MSXML2.XMLHTTP.3.0")

   HttpReq.Open "GET", _

   "http://rate.bot.com.tw/xrt?Lang=zh-TW", _

   False

   HttpReq.send

   S = HttpReq.responseText

   '切割位置從1開始

   iStart = 1

   '輸出到EXCEL從第1列開始

   i = 4

   Do While VBA.InStr(iStart, S, "text-right display_none_print_show print_width") <> 0

   

       '1.現今買入

       '找換行位置

       iStart = VBA.InStr(iStart, S, "text-right display_none_print_show print_width")

       iEnd = VBA.InStr(iStart, S, "

")

       '切割一行 ? len("rate-content-cash text-right print_hide")

       Sdata = Mid(S, iStart + 48, iEnd - iStart - 48)

       ''切割位置+1繼續找

       iStart = iEnd + 48

       Cells(i, "B") = Sdata

       

       '2.現今賣出

       '找換行位置

       iStart = VBA.InStr(iStart, S, "text-right display_none_print_show print_width")

       iEnd = VBA.InStr(iStart, S, "

")

       '切割一行 ? len("rate-content-cash text-right print_hide")

       Sdata = Mid(S, iStart + 48, iEnd - iStart - 48)

       ''切割位置+1繼續找

       iStart = iEnd + 48

       Cells(i, "C") = Sdata

       

       '3.即期買入

       '找換行位置

       iStart = VBA.InStr(iStart, S, "text-right display_none_print_show print_width")

       iEnd = VBA.InStr(iStart, S, "

")

       '切割一行 ? len("rate-content-cash text-right print_hide")

       Sdata = Mid(S, iStart + 48, iEnd - iStart - 48)

       ''切割位置+1繼續找

       iStart = iEnd + 48

       Cells(i, "D") = Sdata

       

       '4.即期賣出

       '找換行位置

       iStart = VBA.InStr(iStart, S, "text-right display_none_print_show print_width")

       iEnd = VBA.InStr(iStart, S, "

")

       '切割一行 ? len("rate-content-cash text-right print_hide")

       Sdata = Mid(S, iStart + 48, iEnd - iStart - 48)

       ''切割位置+1繼續找

       iStart = iEnd + 48

       Cells(i, "E") = Sdata

       '分割為陣列

       i = i + 1

   Loop

   '顯示訊息

   MsgBox "下載完畢!!", vbInformation

End Sub

Public Sub 清除()

   Range("B4:E22").ClearContents

 

End Sub

 

教學影音(完整版在論壇):

 

教學影音完整版在論壇:

https://groups.google.com/forum/#!forum/scu_excel_vba2_86

 

課程特色:

1.如何將函數轉成VBA2.VBA與資料庫快速結合

 

EXCEL函數 VBA程式設計資料庫是分別屬於三個領域的知識,

但卻是目前大家都需要的一項專業技能,要把三者融合的很好實在非常不容易,

剛好我有近20年的VB程式設計與資料庫設計的經驗,

教EXCEL函數與相關課程也有多年,因此清楚如何把最重要的知識教給大家,

ADO資料庫設計的知識非常多,但根據我多年的設計實務經驗,

覺得最重要的是掌握SQL語言,就可以輕易的完成查詢、新增、修改與刪除等功能,

就可以輕易的完成自己想處理的大量資料,大大提高工作效率了!

 

上課用書是:

Excel函數&VBA其實很簡單(http://www.books.com.tw/exep/prod/booksfile.php?item=0010457292)

Excel VBA 與資料庫整合大活用(http://www.books.com.tw/exep/prod/booksfile.php?item=0010463634)

 

完整教學影音DVD申請:http://goo.gl/ZlBZE

論壇:http://groups.google.com/group/labor_excel_vba?hl=zh-TW

 

其他相關學習:

 

    1.EXCEL VBA設計(自強基金會2012)第4次上課

    http://terry55wu.blogspot.tw/2012/03/excel-vba20124.html

     

    2.如何把EXCEL"函數"變為 "VBA"?自強基金會2012第5次上課

    http://terry55wu.blogspot.tw/2012/04/excel-vba.html

     

    3.自強基金會2012第8次上課

    http://terry55wu.blogspot.tw/2012/05/excel-vba20128.html

     

    4.自強基金會2012第9次上課

    http://terry55wu.blogspot.tw/2012/05/excel-vba20129.html

     

    5.EXCEL_VBA與資料庫--自強基金會2012(Ending)

    http://terry55wu.blogspot.tw/2012/07/excelvba-2012ending.html

     

    EXCEL,VBA,函數東吳進修推廣部,EXCEL VBA 函數 程式設計 線上教學 excel vba 教學 excel vba指令教學 vba範例教學excel  excel vba教學視頻 excel函數教學 excel函數 MYSQL

    文章標籤

    吳老師 發表在 痞客邦 留言(0) 人氣()

     

     

    今天是勞工大學選課日,不到一小時,就快額滿(文章寫完應該已經額滿了吧),

    大家對我的EXCEL VBA大數據自動化課程似乎很感興趣,

    這也是我在勞工大學開課的第18年學年了,對這裏有著不同的感覺,

    雖然中間有三個學期因為博士班畢業後去當兵無法開課,

    退伍後一邊在創業,一邊也把心得分享給大家。

    但還好大家沒把我忘了,當時開的AUTOCAD與程式設計依舊受歡迎。

    最早是經由林翰忠老師的引薦,

    得知當時的勞工曹局長有意在當時的台北縣三重勞工活動中心創辦勞工大學,

    當時的課程不多,記得只有電腦和語文,但由於當時電腦學習風氣很盛,

    而當時也沒有網路選課,

    於是半夜凌晨三點,聽說就有人排隊。

    那時第一次開的課程是WORD文書處理,

    當時是很多人不熟悉的專業,

    慢慢地與時俱進,前後在勞大開過非常多種課程,

    幾乎都是年年有新課程,

    主要要不斷更新勞工的傳業技能,

    多半也是應學員要求吧!

    開過的課種類很多,從WORD、EXCEL、ACCESS、PHOTOIMPACT影像處理、多媒體剪輯,

    後來慢慢轉開AUTOCAD平面立體設計與VB.NET程式設計,與相關證照課程,

    ASP.NET程式設計與PHP與MYSQL資料庫都開過,

    文章標籤

    吳老師 發表在 痞客邦 留言(0) 人氣()

    如何在EXCEL中自訂函數與增益集分享VBA自訂函數

     

    預覽畫面:


    如何自訂函數呢?

    可以在VBA中插入模組與插入Function即可,

    可以試試成績函數:

     

    Public Function 成績函數(平均成績)

        If 平均成績 >= 60 Then

            成績函數 = "合格"

        Else

            成績函數 = "不合格"

        End If

    End Function

     

    在EXCEL寫好了很多的自訂函數,

    但要如何在別的電腦使用這些自訂函數呢?

    這是很多學會VBA自訂函數的學員常問的問題,

     

    當然如果懂得複製貼上程式碼到VBA的模組那就沒什麼問題了,

    但若是給一班完全沒學過VBA的使用者,

    那就可以用安裝增益集的方式來安裝所有VBA寫的自訂函數。

     

    不過在分享這些自行撰寫的VBA自訂函數會有智慧權的問題,

    建議可以先把自己寫的VBA程式加上密碼。

    1.加密

     

    2.然後,可以傳給使用者你的有巨集(XLSM)檔案,

    請他另存為增益集

     

    3.接下來記得要啟用增益集,才能使用

     

     

    最後開啟一個新的檔案,你將會在插入函數時看到這些自訂函數了。

     

    教學影音(完整版在論壇):

     

    教學影音完整版在論壇:

    https://groups.google.com/forum/#!forum/scu_excel_vba2_86

     

    課程特色:

    1.如何將函數轉成VBA2.VBA與資料庫快速結合

     

    EXCEL函數 VBA程式設計資料庫是分別屬於三個領域的知識,

    但卻是目前大家都需要的一項專業技能,要把三者融合的很好實在非常不容易,

    剛好我有近20年的VB程式設計資料庫設計的經驗,

    教EXCEL函數與相關課程也有多年,因此清楚如何把最重要的知識教給大家,

    ADO資料庫設計的知識非常多,但根據我多年的設計實務經驗,

    覺得最重要的是掌握SQL語言,就可以輕易的完成查詢、新增、修改與刪除等功能,

    就可以輕易的完成自己想處理的大量資料,大大提高工作效率了!

     

    上課用書是:

    Excel函數&VBA其實很簡單(http://www.books.com.tw/exep/prod/booksfile.php?item=0010457292)

    Excel VBA 與資料庫整合大活用(http://www.books.com.tw/exep/prod/booksfile.php?item=0010463634)

     

    完整教學影音DVD申請:http://goo.gl/ZlBZE

    論壇:http://groups.google.com/group/labor_excel_vba?hl=zh-TW

     

    其他相關學習:

      1.EXCEL VBA設計(自強基金會2012)第4次上課

      http://terry55wu.blogspot.tw/2012/03/excel-vba20124.html

       

      2.如何把EXCEL"函數"變為 "VBA"?自強基金會2012第5次上課

      http://terry55wu.blogspot.tw/2012/04/excel-vba.html

       

      3.自強基金會2012第8次上課

      http://terry55wu.blogspot.tw/2012/05/excel-vba20128.html

       

      4.自強基金會2012第9次上課

      http://terry55wu.blogspot.tw/2012/05/excel-vba20129.html

       

      5.EXCEL_VBA與資料庫--自強基金會2012(Ending)

      http://terry55wu.blogspot.tw/2012/07/excelvba-2012ending.html

       

      EXCEL,VBA,函數東吳進修推廣部,EXCEL VBA 函數 程式設計 線上教學 excel vba 教學 excel vba指令教學 vba範例教學excel  excel vba教學視頻 excel函數教學 excel函數 MYSQL

      文章標籤

      吳老師 發表在 痞客邦 留言(0) 人氣()

      EXCEL VBA批次查詢清單到新增與刪除工作表

       

      預覽畫面:

       

      結果畫面:

       

      如何將單次查詢改為批次查詢,

      可以按照分類清單,將資料自動查詢並輸出成為工作表,

      這部分可以先從建立清單開始,

      其次是,批次新增工作表,

      若有舊的查詢結果則先刪除工作表之後,

      重新批次查詢一次。

       

      **如何批次查詢資料

      1.建立清單

      2.批次新增工作表

      Public Sub 批次新增工作表()

         For i = 2 To Sheets("清單").Range("A2").End(xlDown).Row

             X = Sheets("清單").Cells(i, "A")

             '1.新增工作表

             Sheets.Add After:=Sheets(Sheets.Count)

             Sheets(Sheets.Count).Name = X

         Next

      End Sub

       

      3.批次刪除工作表

      Public Sub 批次刪除工作表()

         Application.DisplayAlerts = False

         For i = Sheets.Count To 3 Step -1

             Sheets(i).Delete

         Next

         Application.DisplayAlerts = True

      End Sub

      4.批次篩選

      Sub 批次篩選業務()

      '關閉畫面更新

         Application.ScreenUpdating = False

         Sheets(1).Select

         Call 批次刪除工作表

       

          For i = 2 To Sheets("清單").Range("A2").End(xlDown).Row

              X = Sheets("清單").Cells(i, "A")

       

              '1.游標放B1

              Range("B1").Select

              '2.篩選

              Selection.AutoFilter

              ActiveSheet.Range("$A$1:$L$2500").AutoFilter Field:=3, Criteria1:=X

              '3.複製

              Range("A1").Select

              Range(Selection, Selection.End(xlToRight)).Select

              Range(Selection, Selection.End(xlDown)).Select

              Selection.Copy

       

              '4.新增工作表

              Sheets.Add After:=Sheets(Sheets.Count)

              Sheets(Sheets.Count).Name = X

       

              '5.貼上

              Range("A1").Select

              ActiveSheet.Paste

              '6.自動調整欄寬

              Selection.Columns.AutoFit

             

              Range("A1").Select

              '7.切回原工作表

              Sheets(1).Select

              Application.CutCopyMode = False

              '8.取消篩選

              Selection.AutoFilter       

              Range("A1").Select

       

          Next

       Application.ScreenUpdating = True

      End Sub

      **如何增加狀態列訊息(Application.StatusBar)

       

      **補充如何自行撰寫移除重複

      Public Sub 移除重複()

         '排序

         Range("A1").CurrentRegion.Select

         '遞增xlAscending或1、遞減xlDescending或2

         Selection.Sort Key1:=Range("A1"), Order1:=1, Header:=xlYes

       

         r = Range("A1").End(xlDown).Row

         For i = r To 2 Step -1

             'Cells(i, "A").Select

             If Cells(i, "A") = Cells(i - 1, "A") Then

                 Rows(i - 1).Delete

             End If

         Next

      End Sub

       

      5.共用程序與傳遞參數

      Sub 批次篩選(清單 As String, 欄位 As Integer)

         'On Error Resume Next

         

         Application.ScreenUpdating = False

         

         Call 批次刪除工作表

         

         r = Sheets("清單").Range(清單 & "2").End(xlDown).Row

         For i = 2 To r

             Application.StatusBar = "目前進度:總共筆數:" & r - 1 & " 進行筆數:" & i - 1

             X = Sheets("清單").Cells(i, 清單)

             '1.游標放B1

             Range("B1").Select

             '2.篩選

             Selection.AutoFilter

             ActiveSheet.Range("$A$1:$L$2500").AutoFilter Field:=欄位, Criteria1:=X

             '3.複製

             Range("A1").Select

             Range(Selection, Selection.End(xlToRight)).Select

             Range(Selection, Selection.End(xlDown)).Select

             Selection.Copy

             '4.新增工作表

             Sheets.Add After:=Sheets(Sheets.Count)

             Sheets(Sheets.Count).Name = X

             '5.貼上

             Range("A1").Select

             ActiveSheet.Paste

             '6.自動調整欄寬

             Selection.Columns.AutoFit

            

             Range("A1").Select

             '7.切回原工作表

             Sheets(1).Select

             Application.CutCopyMode = False

             '8.取消篩選

             Selection.AutoFilter

            

             Range("A1").Select

         Next

         

         Application.ScreenUpdating = True

         

      End Sub

       

      6.呼叫共用程序

      Sub 批次篩選業務()

          Call 批次篩選("A", 3)

      End Sub

      Sub 批次篩選產業別()

          Call 批次篩選("B", 4)

      End Sub

      Sub 批次篩選產品()

         Call 批次篩選("C", 5)

      End Sub

      Sub 批次篩選客戶名稱()

         Call 批次篩選("D", 12)

      End Sub

       

      教學影音(完整版在論壇):

       

      教學影音完整版在論壇:

      https://groups.google.com/forum/#!forum/scu_excel_vba2_86

       

      課程特色:

      1.如何將函數轉成VBA2.VBA與資料庫快速結合

       

      EXCEL函數 VBA程式設計資料庫是分別屬於三個領域的知識,

      但卻是目前大家都需要的一項專業技能,要把三者融合的很好實在非常不容易,

      剛好我有近20年的VB程式設計資料庫設計的經驗,

      教EXCEL函數與相關課程也有多年,因此清楚如何把最重要的知識教給大家,

      ADO資料庫設計的知識非常多,但根據我多年的設計實務經驗,

      覺得最重要的是掌握SQL語言,就可以輕易的完成查詢、新增、修改與刪除等功能,

      就可以輕易的完成自己想處理的大量資料,大大提高工作效率了!

       

      上課用書是:

      Excel函數&VBA其實很簡單(http://www.books.com.tw/exep/prod/booksfile.php?item=0010457292)

      Excel VBA 與資料庫整合大活用(http://www.books.com.tw/exep/prod/booksfile.php?item=0010463634)

       

      完整教學影音DVD申請:http://goo.gl/ZlBZE

      論壇:http://groups.google.com/group/labor_excel_vba?hl=zh-TW

       

      其他相關學習:

       

        1.EXCEL VBA設計(自強基金會2012)第4次上課

        http://terry55wu.blogspot.tw/2012/03/excel-vba20124.html

         

        2.如何把EXCEL"函數"變為 "VBA"?自強基金會2012第5次上課

        http://terry55wu.blogspot.tw/2012/04/excel-vba.html

         

        3.自強基金會2012第8次上課

        http://terry55wu.blogspot.tw/2012/05/excel-vba20128.html

         

        4.自強基金會2012第9次上課

        http://terry55wu.blogspot.tw/2012/05/excel-vba20129.html

         

        5.EXCEL_VBA與資料庫--自強基金會2012(Ending)

        http://terry55wu.blogspot.tw/2012/07/excelvba-2012ending.html

         

        EXCEL,VBA,函數東吳進修推廣部,EXCEL VBA 函數 程式設計 線上教學 excel vba 教學 excel vba指令教學 vba範例教學excel  excel vba教學視頻 excel函數教學 excel函數 MYSQL

        文章標籤

        吳老師 發表在 痞客邦 留言(0) 人氣()

        EXCEL2013版VBA如何快速建立查詢系統

         

        預覽畫面:

         

        關於資料查詢部分,EXCEL的基本查詢有檢視與參照的相關函數,

        最常用的有VLOOKUP等函數

        查詢的功能很有限,實在無法達到自動化的目的,

        所以如果要查詢更複雜切大量的資料,可以用資料庫的查詢功能,

        可以藉由SQL語法 Select敘述,達成所需要的效果,

        但若只是單純的EXCEL資料,則可以藉由篩選功能完成,

        若需要達到自動化目的,可以配合巨集錄製與修改。

        以下屆由問題05範例來說明。

         

        完成畫面:

         

         

        01_篩選業務巨集錄製程式碼

        02_防止查詢工作表已存在(手動)

        03_防止查詢工作表已存在(自動)

        04_如何避免位輸入資料與相同工作表名稱

        05_如何關閉VBA的刪除提示訊息

        06_如何產生其他欄位查詢與簡化與呼叫程序

         

        **篩選功能與錄製巨集

        練習錄製並修改篩選業務

         

        Sub 篩選業務()

            X = InputBox("請輸入業務姓名!!")

            '1.游標放B1

            Range("B1").Select

            '2.篩選

            Selection.AutoFilter

            ActiveSheet.Range("$A$1:$L$2500").AutoFilter Field:=3, Criteria1:=X

            '3.複製

            Range("A1").Select

            Range(Selection, Selection.End(xlToRight)).Select

            Range(Selection, Selection.End(xlDown)).Select

            Selection.Copy

            '4.新增工作表

            Sheets.Add After:=Sheets(Sheets.Count)

            Sheets(Sheets.Count).Name = X

            '5.貼上

            Range("A1").Select

            ActiveSheet.Paste

            '6.自動調整欄寬

            Selection.Columns.AutoFit

           

            Range("A1").Select

            '7.切回原工作表

            Sheets(1).Select

            '8.取消篩選

            Selection.AutoFilter

           '9.切回到A1

           Range("A1").Select

        End Sub

        Sub 篩選業務_簡化()

           X = InputBox("請輸入業務姓名!!")

           '2.篩選

           Sheets(1).Range("$A$1:$L$" & Range("A1").End(xlDown).Row).AutoFilter Field:=3, Criteria1:=X

           '3.複製

           Range("A1").CurrentRegion.Copy

         

           Range("A1").CurrentRegion.select

          Selection.copy

           '4.新增工作表

           Sheets.Add After:=Sheets(Sheets.Count)

           Sheets(Sheets.Count).Name = X

           '5.貼上

           Range("A1").Select

           ActiveSheet.Paste

           '6.自動調整欄寬

           Columns("A:L").AutoFit

           Range("A1").Select

           '7.切回原工作表

           Sheets(1).Select

           '8.取消篩選

           Selection.AutoFilter

           Range("A1").Select

        End Sub

         

        **防止按鈕因篩選而變形:

         

         

        **如何將篩選改為關鍵字查詢

        方法1:

         

        方法2:

         

           Y = "=*" & X & "*"

           ActiveSheet.Range("$A$1:$L$2500").AutoFilter Field:=3, Criteria1:=Y

         

        **避免程式錯誤的三種防呆判斷

        Sub 篩選業務_防呆()

         

           x = InputBox("請輸入業務姓名!!")

           

           '防呆1:如何防止查詢已存在的名稱而產生錯誤

           For i = 2 To Sheets.Count

               If x = Sheets(i).Name Then

                   'MsgBox "工作表已存在請先刪除!!"

                   'Exit Sub

                   Application.DisplayAlerts = False

                   Sheets(i).Delete

                   Application.DisplayAlerts = True

                   Exit For            

               End If

           Next

           '防呆2:無填寫

           If x = "" Then

               MsgBox "請務必輸入資料!!"

               Exit Sub

           End If    

           

           '2.篩選

           Selection.AutoFilter

           ActiveSheet.Range("$A$1:$L$2500").AutoFilter Field:=3, Criteria1:=X

         

           '防呆3:無結果

           If Range("A1").End(xlDown).Row = 1048576 Then

               MsgBox "查無資料!!"

               Selection.AutoFilter

               Exit Sub

           End If

           

           '3.複製

           Range("A1").Select

           Range(Selection, Selection.End(xlToRight)).Select

           Range(Selection, Selection.End(xlDown)).Select

           Selection.Copy

           '4.新增工作表

           Sheets.Add After:=Sheets(Sheets.Count)

           Sheets(Sheets.Count).Name = x

           '5.貼上

           Range("A1").Select

           ActiveSheet.Paste

           '6.自動調整欄寬

           Selection.Columns.AutoFit

          

           Range("A1").Select

           '7.切回原工作表

           Sheets(1).Select

           Application.CutCopyMode = False

           '8.取消篩選

           Selection.AutoFilter

          

           Range("A1").Select

        End Sub

         

        教學影音(完整版在論壇):

         

        教學影音完整版在論壇:

        https://groups.google.com/forum/#!forum/scu_excel_vba2_86

         

        課程特色:

        1.如何將函數轉成VBA2.VBA與資料庫快速結合

         

        EXCEL函數 VBA程式設計資料庫是分別屬於三個領域的知識,

        但卻是目前大家都需要的一項專業技能,要把三者融合的很好實在非常不容易,

        剛好我有近20年的VB程式設計與資料庫設計的經驗,

        教EXCEL函數與相關課程也有多年,因此清楚如何把最重要的知識教給大家,

        ADO資料庫設計的知識非常多,但根據我多年的設計實務經驗,

        覺得最重要的是掌握SQL語言,就可以輕易的完成查詢、新增、修改與刪除等功能,

        就可以輕易的完成自己想處理的大量資料,大大提高工作效率了!

         

        上課用書是:

        Excel函數&VBA其實很簡單(http://www.books.com.tw/exep/prod/booksfile.php?item=0010457292)

        Excel VBA 與資料庫整合大活用(http://www.books.com.tw/exep/prod/booksfile.php?item=0010463634)

         

        完整教學影音DVD申請:http://goo.gl/ZlBZE

        論壇:http://groups.google.com/group/labor_excel_vba?hl=zh-TW

         

        其他相關學習:

         

          1.EXCEL VBA設計(自強基金會2012)第4次上課

          http://terry55wu.blogspot.tw/2012/03/excel-vba20124.html

           

          2.如何把EXCEL"函數"變為 "VBA"?自強基金會2012第5次上課

          http://terry55wu.blogspot.tw/2012/04/excel-vba.html

           

          3.自強基金會2012第8次上課

          http://terry55wu.blogspot.tw/2012/05/excel-vba20128.html

           

          4.自強基金會2012第9次上課

          http://terry55wu.blogspot.tw/2012/05/excel-vba20129.html

           

          5.EXCEL_VBA與資料庫--自強基金會2012(Ending)

          http://terry55wu.blogspot.tw/2012/07/excelvba-2012ending.html

           

          EXCEL,VBA,函數東吳進修推廣部,EXCEL VBA 函數 程式設計 線上教學 excel vba 教學 excel vba指令教學 vba範例教學excel  excel vba教學視頻 excel函數教學 excel函數 MYSQL

          文章標籤

          吳老師 發表在 痞客邦 留言(0) 人氣()

          Android_Studio開發實例多按鈕範例與多國語系


          預覽畫面:

           

          主要是延續HelloWorld按鈕範例,

          改為多按鈕,可以顯示在 EditText 中,也可以清除數字,

          重點在使用 LinerLayout 來排版 XML檔

          設計好介面之後,再來轉寫程式,以符合MVC的架構

          最後補充多國語系設計,讓不同國家使用者,

          都能看到自己區域的語系。

          以下有些分享畫面分享:

          完成設計畫面

          畫面XML:

          1.方向

          2.TextView設定

          3.按鈕版形

           

          完整教學:

           

          介面:

          xmlns:android="http://schemas.android.com/apk/res/android"

             xmlns:tools="http://schemas.android.com/tools"

             android:id="@+id/LinearLayout1"

             android:layout_width="match_parent"

             android:layout_height="match_parent"

             android:orientation="vertical"

             android:paddingBottom="@dimen/activity_vertical_margin"

             android:paddingLeft="@dimen/activity_horizontal_margin"

             android:paddingRight="@dimen/activity_horizontal_margin"

             android:paddingTop="@dimen/activity_vertical_margin"

             tools:context=".MainActivity" >

           

             

                 android:id="@+id/txtShow"

                 android:layout_width="match_parent"

                 android:layout_height="wrap_content"

                 android:text="電話號碼:"

                 android:textAppearance="?android:attr/textAppearanceLarge"

                 android:textColor="#00FF00"

                 android:textSize="30sp" />

           

             

                 android:layout_width="match_parent"

                 android:layout_height="wrap_content"

                 android:gravity="center" >        

                     android:id="@+id/b01"

                     android:layout_width="50dp"

                     android:layout_height="wrap_content"

                     android:text="1" />

           

                 

                     android:id="@+id/b02"

                     android:layout_width="50dp"

                     android:layout_height="wrap_content"

                     android:text="2" />

           

                 

                     android:id="@+id/b03"

                     android:layout_width="50dp"

                     android:layout_height="wrap_content"

                     android:text="3" />

           

             

           

             

                 android:layout_width="match_parent"

                 android:layout_height="wrap_content"

                 android:gravity="center" >

           

                 

                     android:id="@+id/b04"

                     android:layout_width="50dp"

                     android:layout_height="wrap_content"

                     android:text="4" />

           

                 

                     android:id="@+id/b05"

                     android:layout_width="50dp"

                     android:layout_height="wrap_content"

                     android:text="5" />

           

                 

                     android:id="@+id/b06"

                     android:layout_width="50dp"

                     android:layout_height="wrap_content"

                     android:text="6" />

             

           

             

                 android:layout_width="match_parent"

                 android:layout_height="wrap_content"

                 android:gravity="center" >

           

                 

                     android:id="@+id/b07"

                     android:layout_width="50dp"

                     android:layout_height="wrap_content"

                     android:text="7" />

           

                 

                     android:id="@+id/b08"

                     android:layout_width="50dp"

                     android:layout_height="wrap_content"

                     android:text="8" />

           

                 

                     android:id="@+id/b09"

                     android:layout_width="50dp"

                     android:layout_height="wrap_content"

                     android:text="9" />

             

           

             

                 android:layout_width="match_parent"

                 android:layout_height="wrap_content"

                 android:gravity="center" >

           

                 

                     android:id="@+id/b10"

                     android:layout_width="50dp"

                     android:layout_height="wrap_content"

                     android:text="*" />

           

                 

                     android:id="@+id/b00"

                     android:layout_width="50dp"

                     android:layout_height="wrap_content"

                     android:text="0" />

           

                 

                     android:id="@+id/b11"

                     android:layout_width="50dp"

                     android:layout_height="wrap_content"

                     android:text="#" />

             

           

             

                 android:id="@+id/bClear"

                 android:layout_width="150dp"

                 android:layout_height="wrap_content"

                 android:layout_gravity="center"

                 android:text="清除" />

           

          程式設計:

          import android.app.Activity;

          import android.os.Bundle;

          import android.view.View;

          import android.widget.Button;

          import android.widget.TextView;

           

          public class MainActivity extends Activity {

            //1.宣告物件

            TextView txtShow;

            Button b00,b01,b02,b03,b04,b05,b06,b07,b08,b09,b10,b11,bClear;

           

            @Override

            protected void onCreate(Bundle savedInstanceState) {

                super.onCreate(savedInstanceState);

                setContentView(R.layout.activity_main);

                //2.連結元件

                txtShow=(TextView) this.findViewById(R.id.txtShow);

                b00=(Button) this.findViewById(R.id.b00);

                b01=(Button) this.findViewById(R.id.b01);

                b02=(Button) this.findViewById(R.id.b02);

                b03=(Button) this.findViewById(R.id.b03);

                b04=(Button) this.findViewById(R.id.b04);

                b05=(Button) this.findViewById(R.id.b05);

                b06=(Button) this.findViewById(R.id.b06);

                b07=(Button) this.findViewById(R.id.b07);

                b08=(Button) this.findViewById(R.id.b08);

                b09=(Button) this.findViewById(R.id.b09);

                b10=(Button) this.findViewById(R.id.b10);

                b11=(Button) this.findViewById(R.id.b11);

                bClear=(Button) this.findViewById(R.id.bClear);

                //3.建立事件

                b00.setOnClickListener(new View.OnClickListener(){

           

                    @Override

                    public void onClick(View v) {

                        // TODO 自動產生的方法 Stub

                        String S=txtShow.getText().toString();

                        txtShow.setText(S+"0");

                    }});

                b01.setOnClickListener(new Button.OnClickListener(){

           

                    @Override

                    public void onClick(View v) {

                        // TODO 自動產生的方法 Stub

                        String S=txtShow.getText().toString();

                        txtShow.setText(S+"1");

                    }});

                b02.setOnClickListener(new Button.OnClickListener(){

           

                    @Override

                    public void onClick(View v) {

                        // TODO 自動產生的方法 Stub

                        String S=txtShow.getText().toString();

                        txtShow.setText(S+"2");

                    }});

                b03.setOnClickListener(new Button.OnClickListener(){

           

                    @Override

                    public void onClick(View v) {

                        // TODO 自動產生的方法 Stub

                        String S=txtShow.getText().toString();

                        txtShow.setText(S+"3");

                    }});

                b04.setOnClickListener(new Button.OnClickListener(){

           

                    @Override

                    public void onClick(View v) {

                        // TODO 自動產生的方法 Stub

                        String S=txtShow.getText().toString();

                        txtShow.setText(S+"4");

                    }});

                b05.setOnClickListener(new Button.OnClickListener(){

           

                    @Override

                    public void onClick(View v) {

                        // TODO 自動產生的方法 Stub

                        String S=txtShow.getText().toString();

                        txtShow.setText(S+"5");

                    }});

                b06.setOnClickListener(new Button.OnClickListener(){

           

                    @Override

                    public void onClick(View v) {

                        // TODO 自動產生的方法 Stub

                        String S=txtShow.getText().toString();

                        txtShow.setText(S+"6");

                    }});

                b07.setOnClickListener(new Button.OnClickListener(){

           

                    @Override

                    public void onClick(View v) {

                        // TODO 自動產生的方法 Stub

                        String S=txtShow.getText().toString();

                        txtShow.setText(S+"7");

                    }});

                b08.setOnClickListener(new Button.OnClickListener(){

           

                    @Override

                    public void onClick(View v) {

                        // TODO 自動產生的方法 Stub

                        String S=txtShow.getText().toString();

                        txtShow.setText(S+"8");

                    }});

                b09.setOnClickListener(new Button.OnClickListener(){

           

                    @Override

                    public void onClick(View v) {

                        // TODO 自動產生的方法 Stub

                        String S=txtShow.getText().toString();

                        txtShow.setText(S+"9");

                    }});

                b10.setOnClickListener(new Button.OnClickListener(){

           

                    @Override

                    public void onClick(View v) {

                        // TODO 自動產生的方法 Stub

                        String S=txtShow.getText().toString();

                        txtShow.setText(S+"*");

                    }});

                b11.setOnClickListener(new Button.OnClickListener(){

           

                    @Override

                    public void onClick(View v) {

                        // TODO 自動產生的方法 Stub

                        String S=txtShow.getText().toString();

                        txtShow.setText(S+"#");

                    }});

                bClear.setOnClickListener(new Button.OnClickListener(){

           

                    @Override

                    public void onClick(View v) {

                        // TODO 自動產生的方法 Stub

                        String S=txtShow.getText().toString();

                        if (S.length()>5){

                            txtShow.setText(S.substring(0, S.length()-1));

                        }

                    }});

            }

          }

           

          **補充多國語系設計

           

           


          懶人包:http://terry55wu.blogspot.com/p/android.html

           

          課程理念與課程介紹:

          Android智慧型手機平台,已成為手機上最完整的開放開發平台

          人手必備的趨勢下行動上網已達500萬人次以上,手機相關應用,將會超

          越PC,比PC更智慧,更貼近個人使用習慣,未來APP將漸取代Web,成

          為各產業或政府對外窗口。

          如何開發APP,以循序漸進的方式講授Android應用程式架構、圖形介面

          開發、測試與除錯等,進而取得證照。

          吳老師教學特色:

          1.影音複習分享(全程錄影)。

          2.能不硬code程式,有程式也會提供畫面。

          3.提供業界實務開發經驗。

          4.書上沒講到的操作,圖形化工具使用。

          5.隨時更新第一手資訊。

           

          參考書目

          Android 初學特訓班

          作者:鄧文淵/總監製;文淵閣工作室/編著

           

           

          發表時間

          文章標題

          2015-06-15

          Android開發實務基本相簿Photoplayer範例

          2015-06-15

          Android開發實務相簿表格GridView範例

          2015-06-13

          智慧型手機開發進階SQLite資料庫的存取方式

          2015-06-13

          智慧型手機進階SQLite資料庫的存取方式

          2015-05-25

          如何讓圖片有縮放功能(增加TouchImageView類別)

          2015-05-18

          把Android APP專案轉移Android_Studio分享

          2015-03-22

          ANDROID APP開發與雲端實務應用(第1次上課建置與開發)

          2015-01-28

          Android APP程式開發證照教學懶人包(new)

          2015-01-16

          Android開發實務相簿表格GridView範例

          2015-01-16

          Android開發實務相簿藝廊Gallery範例

          2015-01-16

          Android開發實務基本相簿Photoplayer範例

          2015-01-16

          Android開發實務下拉清單Spinner與樣板

          2015-01-16

          Android開發實務相簿藝廊Gallery範例

          2015-01-16

          健行科大Android程式設計實務第4次上課_RadioButton

          2015-01-16

          Android開發實務Input介面設計與AlertDialog

          2015-01-16

          Android開發實務多按鈕與多國語系

          2015-01-16

          Android程式實務第1次上課(馬上建置與開發)

          2014-07-13

          艾鍗Android行動應用程式設計實務(如何產生功能表選單)

          2014-07-13

          如何使用ListView 介面元件

          2014-07-13

          教您學會簡易相簿APP範例Phoneplayer專案

          2014-07-13

          如何在Android APP的ListView 元件同時加上圖與字

          2014-01-12

          智慧型手機(Android)設計入門第15次

          2014-01-05

          智慧型手機(Android)設計入門第14次

          2013-09-28

          智慧型手機設計入門第2次(102年)

          2013-02-03

          Android開發實例進階(勞大) 影音DVD完工

          2013-01-13

          智慧型手機開發實例與證照解析(Android)第18次上課

          2013-01-13

          建國科大APP產業演講影音(共2小時)

          2012-12-22

          智慧型手機開發實例與證照解析(Android)第15次上課

          2012-12-22

          智慧型手機開發實例與證照解析(Android)第11次上課

          2012-12-08

          智慧型手機開發實例與證照解析(Android)第13次上課

          2012-12-08

          海洋資通APP開發課程第10次上課

          2012-11-18

          智慧型手機開發實例與證照解析(Android)第10次上課

          2012-11-02

          智慧型手機開發實例與證照解析(Android)第9次上課

          2012-10-28

          智慧型手機開發實例與證照解析(Android)第8次上課

           

          想快速學會APP設計與開發,建議可以先從JAVA先聽完並練習,

          再學習光碟19,之後銜接光碟21進階或光碟14比較偏證照考試。

          或從光碟24_從JAVA入門到智慧型手機設計開始(目錄 http://goo.gl/1XOOG)

          另有最近推出的合輯:

          光碟30_JAVA7物件導向(2013) 艾鍗學院96小時上課 目錄:

          http://goo.gl/Wjbjo9

          光碟31_智慧型手機入門(2013) 勞工大學48小時上課 目錄:

          http://goo.gl/qMTc9E

          光碟32_淡江資工Android證照解題(2013) 淡江資工40小時上課 目錄:

          http://goo.gl/q1eQkr

          想快速學會APP設計與開發,建議可以先從光碟24--30--31--32


          完整教學影音DVD分享申請 [連結]

           

          android app教學,android 開發教學,android 程式教學,android eclipse,android 使用教學,Andriod ,android ,程式教學 ,android ,eclipse ,Android Studio,App開發教學,app開發課程,手機app開發教學

          文章標籤

          吳老師 發表在 痞客邦 留言(0) 人氣()

          EXCEL VBA改用MYSQL當成資料庫存放大量資料

           

          一般會和EXCEL VBA連接的大多都是用到ACCESSMS SQL資料庫

          但ACCESS資料庫與MS SQL資料庫都不是自由軟體,所以會有授權費用

          另外ACCESS資料庫基本上是單機型的資料庫,對於多台電腦連線就會有問題

          雖然可以透過網芳共用來解決,但還是非常的麻煩的,

          所以改用MYSQL資料庫,似乎就可以解決前兩者資料庫的問題,

          首先它是自由軟體,再者它也可以讓大家在同個網路區段裡連線。

          以下介紹如何安裝EXCEL VBA連線

           

          預覽畫面:

           

          可以先參考:

          PHP與雲端資料庫教學懶人包(2015)

          https://terry55wu.blogspot.tw/p/blog-page_18.html

           

          PHP雲端資料庫教學之1(打造PHP與MySQL環境)

          https://terry55wu.blogspot.tw/2015/03/php1phpmysql.html

           

          這是PHP雲端資料庫第一次上課,主要是了解學生的程度學習需求
          並且打造PHP與MySQL環境下載XAMPP安裝的懶人包 [下載]

           

          解壓縮到D碟與執行setup_xampp.batxampp-control.exe

           

          啟動Apache 與 MySQL (注意要允許防火牆)

           

          1.如何設定XAMPP與MQSQL的安全性

           

           

          2.如何新增MQSQL資料庫與資料表

          建立資料庫

          3.建立資料表

          4.增加欄位(姓名,身高,體重,性別,標準體重)

           

          INSERT INTO 問題1 (姓名,身高,體重,性別,標準體重) values ('楊XX',170,72,'男',69.94)

          補充:

          查詢資料:select * from 問題1 where 性別='女'

          修改資料:Update 問題1 set 身高='170' where 姓名='李XX'

          刪除資料:DELETE FROM 問題1 where 姓名='李XX'

           

          如何在EXCEL表單中新增一筆資料到MYSQL資料庫中:

           

          1.完成畫面:

          新增單筆、新增全部、刪除EXCEL資料、從MYSQL資料庫全部匯入、刪除所有MYSQL資料

           

          Sub 新增單筆()

             r = Range("B2").End(xlDown).Row

             A = Cells(r, 2)

             B = Cells(r, 3)

             C = Cells(r, 4)

             D = Cells(r, 5)

             E = Cells(r, 6)

             Call 利用ADO新增資料(A, B, C, D, E)

             MsgBox "資料新增成功!!", vbInformation

          End Sub

          Sub 新增全部()

             For i = 3 To Range("B2").End(xlDown).Row

                 A = Cells(i, "B")

                 B = Cells(i, 3)

                 C = Cells(i, 4)

                 D = Cells(i, 5)

                 E = Cells(i, 6)

                 Call 利用ADO新增資料(A, B, C, D, E)

             Next

             MsgBox "資料新增全部成功!!", vbInformation

          End Sub

          Sub 利用ADO新增資料(A, B, C, D, E)

             '1.建立Connection物件

             Set myCon = CreateObject("ADODB.Connection")

             '2.連結資料庫

             myCon.Open "Driver={MySQL ODBC 5.2 UNICODE Driver};Server=127.0.0.1;Database=問題1;User=root;Password=1234;Option=3;"

             '3.建立Recordset物件&連結資料表

             Sql = "INSERT INTO 問題1 (姓名,身高,體重,性別,標準體重) VALUES ('" & _

             A & "'," & B & ", " & C & ", '" & D & "', " & E & ")"

             'MsgBox (Sql)

             Set myRs = myCon.Execute(Sql)

          End Sub

          Public Sub 刪除EXCEL資料()

             Range("B3:F" & Range("B2").End(xlDown).Row).ClearContents

          End Sub

          Sub MYSQL資料庫全部匯入()

             '1.建立Connection物件

             Set myCon = CreateObject("ADODB.Connection")

             '2.連結資料庫

             'myCon.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & ThisWorkbook.Path & "\問題1.accdb;"

             myCon.Open "Driver={MySQL ODBC 5.2 UNICODE Driver};Server=127.0.0.1;Database=問題1;User=root;Password=1234;Option=3;"

             '3.建立Recordset物件&連結資料表

             Sql = "Select * from 問題1"

             'MsgBox (Sql)

             Set myRs = myCon.Execute(Sql)

             Range("B3").CopyFromRecordset myRs

          End Sub

          Sub 刪除所有MYSQL資料()

             '1.建立Connection物件

             Set myCon = CreateObject("ADODB.Connection")

             '2.連結資料庫

             'myCon.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & ThisWorkbook.Path & "\問題1.accdb;"

             myCon.Open "Driver={MySQL ODBC 5.2 UNICODE Driver};Server=127.0.0.1;Database=問題1;User=root;Password=1234;Option=3;"

             '3.建立Recordset物件&連結資料表

             Sql = "Delete from 問題1"

             'MsgBox (Sql)

             Set myRs = myCon.Execute(Sql)

          End Sub

           

          最後如何遠端連線MYSQL的設定

          1.新增使用者

          2.設定權限(任意主機)

          3.修改連線主機的IP或名稱

           

          教學影音(完整版在論壇):

           

          教學影音完整版在論壇:

          https://groups.google.com/forum/#!forum/scu_excel_vba2_86

           

          課程特色:

          1.如何將函數轉成VBA2.VBA與資料庫快速結合

           

          EXCEL函數 VBA程式設計資料庫是分別屬於三個領域的知識,

          但卻是目前大家都需要的一項專業技能,要把三者融合的很好實在非常不容易,

          剛好我有近20年的VB程式設計與資料庫設計的經驗,

          教EXCEL函數與相關課程也有多年,因此清楚如何把最重要的知識教給大家,

          ADO資料庫設計的知識非常多,但根據我多年的設計實務經驗,

          覺得最重要的是掌握SQL語言,就可以輕易的完成查詢、新增、修改與刪除等功能,

          就可以輕易的完成自己想處理的大量資料,大大提高工作效率了!

           

          上課用書是:

          Excel函數&VBA其實很簡單(http://www.books.com.tw/exep/prod/booksfile.php?item=0010457292)

          Excel VBA 與資料庫整合大活用(http://www.books.com.tw/exep/prod/booksfile.php?item=0010463634)

           

          完整教學影音DVD申請:http://goo.gl/ZlBZE

          論壇:http://groups.google.com/group/labor_excel_vba?hl=zh-TW

           

          其他相關學習:

           

            1.EXCEL VBA設計(自強基金會2012)第4次上課

            http://terry55wu.blogspot.tw/2012/03/excel-vba20124.html

             

            2.如何把EXCEL"函數"變為 "VBA"?自強基金會2012第5次上課

            http://terry55wu.blogspot.tw/2012/04/excel-vba.html

             

            3.自強基金會2012第8次上課

            http://terry55wu.blogspot.tw/2012/05/excel-vba20128.html

             

            4.自強基金會2012第9次上課

            http://terry55wu.blogspot.tw/2012/05/excel-vba20129.html

             

            5.EXCEL_VBA與資料庫--自強基金會2012(Ending)

            http://terry55wu.blogspot.tw/2012/07/excelvba-2012ending.html

             

            EXCEL,VBA,函數東吳進修推廣部,EXCEL VBA 函數 程式設計 線上教學 excel vba 教學 excel vba指令教學 vba範例教學excel  excel vba教學視頻 excel函數教學 excel函數 MYSQL

            文章標籤

            吳老師 發表在 痞客邦 留言(0) 人氣()

            Close

            您尚未登入,將以訪客身份留言。亦可以上方服務帳號登入留言

            請輸入暱稱 ( 最多顯示 6 個中文字元 )

            請輸入標題 ( 最多顯示 9 個中文字元 )

            請輸入內容 ( 最多 140 個中文字元 )

            reload

            請輸入左方認證碼:

            看不懂,換張圖

            請輸入驗證碼