公告版位

目前分類:02_EXCEL VBA自動化教學 (123)

瀏覽方式: 標題列表 簡短摘要

用EXCEL VBA做大數據分析視覺化程式設計教學心得分享

本學期應邀回母校台師大開課課程主要是:
用EXCEL VBA做大數據分析視覺化程式設計
 
另一個母校,東吳大學也邀請我開課,但限於自己的時間無法排出適合的時間,
於是系主任便推薦我開設遠距課程於是,
便有了可以在台師大上課,並將上課錄影除了提供上課學生複習,
也可以將後製後的影片,提供東吳的遠距課程的想法,
這樣我只要認真地把一次課程作法,就可以讓兩邊的學生都學習的好辦法。
 
於是開學後,台師大受限電腦教室,選修人數只有50人,加上加選5人,
有55位學生,幾乎是秒殺,至於東吳遠距課程,沒有這樣的限制,
所以選課人數近百人,有95位選修。
 

一、課程大綱:

期中前,主要從EXCEL高階函數巨集錄製VBA程式設計,
資料來源為政府開放資料,配合樞紐分析表。
 
期中後,網路爬蟲+樞紐分析到視覺化圖報表,用EXCEL內建功能與錄製巨集寫爬蟲,
無法抓取資料則用IE物件,將IE瀏覽器嵌入EXCEL VBA程式中,只要能連結的網頁,單可以下載裡面的資料。
 
 
 
課程進行中提供雲端講義,裡面有說明、畫面與老師自己寫的程式碼,並隨課全程錄影,
後製後上傳YOUTUBE,建立播放清單,直接件給學生複習與學習。
建立一個GOOGLE論壇,只有學生可以加入,
課後會將上課的YOUTUBE影片建立播放清單,並貼到論壇,
好處就是會自動轉信給學生,這樣我就不用一個一個的郵寄了,
用了超過十年覺得沒什麼問題,只是雖是論壇,
但討論的介面做的很不好,最好用的還是分享上課影片清單。
 
 
 

二、修課人數/學院分布

 

 

 

三、期中專題作業

 

 

 

 

 

四、期末專題作業

 

 

 

 

 

 

 

 

 

 

 

五、本學期授課心得:

1.兩學分真的有點趕,因此輔以影音錄製與雲端講義,對認真學習學生幫助很大。
2.期中專題有範圍,但許多學生都能加入自己的需求和想法,加上EXCEL容易上手,雖說需要撰寫VBA程式,但因為懂得錄製巨集與修改的方式,都能完成理想專題。
3.期末專題為難度很高的網路爬蟲+製作圖表,但結果超過預期的好,可見學生接受度很好,以學生回饋意見可知,上課錄影可重複學習備查,與雲端講義助益很大。
4.遠距學習(東吳)結果因為有影音與雲端輔助,成果不遜於實體上課。

 

非資訊背景教程式設計

非資訊卻講程式設計二十一年(89年巨匠教VB)
比較沒包袱,能從非資訊角度看學習與應用
重視實作,很多人看的懂書上寫的但寫不出程式
程式寫作要會寫,還要熟練,更需要完全正確(99分程式還是無法執行)
教學的核心都在如何幫助學生學會寫程式。
從EXCEL函數開始,再學習錄製巨集,再慢慢進入VBA程式設計的世界
 

如何幫學生寫出又快會好又正確程式

1.所有程式都是自己預先多次撰寫,用自己的寫作風格撰寫,不要求學生有標準答案,可以用自己的方式與邏輯寫程式。
2.提供雲端即時講義,取名雲端白板,有解答程式畫面結果與文字敘述。
3.隨課錄影,並課後上傳YOUTUBE播放清單用用GOOGLE論壇分享。
4.期中報告以開放資料為資料來源,用EXCEL樞紐分析圖表、函數、巨集與VBA完成專題。
5.期末報告以網路爬蟲取得資料(GET與POST),用EXCEL製作圖表與VBA完成專題。
 

Pyhton V.S. VBA

自己也教Pyhton發現還是比VBA來的困難
1.安裝環境
2.有EXCEL可以存資料,甚至當資料庫
3.有錄製巨集可以產生不會寫的程式
4.樞紐分析 vs Pandas
5.圖表 vs Matplotlib
入門的學生與非資訊相關科系,建議可以先從學習VBA設計下手
 

第14次上課教學影片分享:

(期末專題作業說明&全省氣溫改為跨工作表與物件的使用&跨工作表說明與用IE物件)

 

教學論壇:

 

EXCEL VBA進階班的課程規劃

主要是延伸入門課,延伸資料庫、多工作表、工作簿、網路爬蟲、視覺化報表等應用並與Python程式協同應用

單元01_資料拆解相關(VBA)
單元02_輸入自動化與表單設計
單元03_用ADO匯入與匯出資料庫
單元04_大量工作表合併與分割
單元05_資料查詢(篩選與分割工作表)
單元06_下載網路資料(YAHOO股市)
單元07_活頁簿與檔案處理(工作表分割與合併活頁簿)
單元08_視覺化報表與快速匯入圖片


其他相關學習:

函數東吳進修推廣部, EXCEL, EXCEL VBA 函數,程式設計,線上教學
文章標籤

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

用EXCEL VBA網路爬蟲擷取YAHOO股市資料

 

EXCEL錄製巨集爬取YAHOO股市資料,

會有亂碼的問題,用PYTHON來爬取,

對一般人來說門檻又太高,

如果如何在EXCEL VBA就可以輕鬆爬取網路資料,

就是本文所要分享的重點。

當然本文不是要推崇VBA有多棒,Python不好用,

我的想法是只要用對工具,工作可以很愜意,

可以協同應用工具,讓彼此都能發揮最大的強項,

是本文寫說明的,

另外順便分享在EXCEL除了用匯入資料從WEB功能外,

也可以用IE物件,

功能很像是Python的requests加上beautifulsoup4差不多功能,

不同的是,可以將下載的資料直接放在EXCEL,

也就是把EXCEL當成資料庫用,這樣可以減少很多資料庫匯入匯出的麻煩。

 

首先,YAHOO股市當日行情表網址:

https://tw.stock.yahoo.com/class-quote?sectorId=1&exchange=TAI

 

*改用IE物件下載

 

VBA程式碼

Sub 下載YAHOO_水泥()

    '清除資料

    Cells.Clear

    '1.建立IE物件

    Set ie = CreateObject("internetexplorer.application")

    '2.連線到網址

    ie.navigate "https://tw.stock.yahoo.com/class-quote?sectorId=1&exchange=TAI"

    '3.等待3秒

    Application.Wait (Now + TimeValue("0:00:5"))

    '4.取得網頁中第1個表格

    Set tbl = ie.document.getElementsByTagName("ul")(5)

    '5.取得表格中所有的列<tr>

    Set trs = tbl.getElementsByTagName("li")

'    '6.取得列中的每一個儲存格內文字<td>如果沒有<td>抓<th>

    For i = 0 To trs.Length - 1

        Set tds = trs(i).getElementsByTagName("div")

        For j = 5 To tds.Length - 1

            Cells(i + 1, j - 4) = tds(j).innertext

        Next

    Next

    Columns("C").Delete

    ie.Quit    

    Rows(1).Insert

    Range("A1") = "股票名稱": Range("B1") = "代號": Range("C1") = "股價"

    Range("D1") = "漲跌": Range("E1") = "漲跌幅(%)": Range("F1") = "開盤"

    Range("G1") = "昨收": Range("H1") = "最高": Range("I1") = "最低"

    Range("J1") = "成交量 (張)": Range("K1") = "時間"

    Columns.AutoFit

End Sub

教學影片分享:

 

 

教學論壇:

 
 

EXCEL VBA進階班的課程規劃

主要是延伸入門課,延伸資料庫、多工作表、工作簿、網路爬蟲、視覺化報表等應用並與Python程式協同應用

單元01_資料拆解相關(VBA)
單元02_輸入自動化與表單設計
單元03_用ADO匯入與匯出資料庫
單元04_大量工作表合併與分割
單元05_資料查詢(篩選與分割工作表)
單元06_下載網路資料(YAHOO股市)
單元07_活頁簿與檔案處理(工作表分割與合併活頁簿)
單元08_視覺化報表與快速匯入圖片


其他相關學習:

函數東吳進修推廣部, EXCEL, EXCEL VBA 函數,程式設計,線上教學
文章標籤

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

班級資料工作表的分割與合併(用EXCEL VBA)

 

最常遇到學員問到如何將工作表分割與合併為同一個工作表

若是用人工方式複製貼上,真的非常浪費時間,

工作表越多越麻煩,

其實只要一個迴圈,加上範圍複製,與資料篩選,

其實就可以在瞬間完成工作,

以下分享用VBA直接撰寫程式,將工作表分割合併的方法。

 

 

完成畫面:


分割工作表

 

程式碼

 合併工作表

 

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

 

教學影音完整版在論壇:

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

 

EXCEL VBA進階班的課程規劃

 

主要是延伸入門課,延伸資料庫、多工作表、工作簿、網路爬蟲、視覺化報表等應用並與Python程式協同應用

單元01_資料拆解相關(VBA)

單元02_輸入自動化與表單設計

單元03_用ADO匯入與匯出資料庫

單元04_大量工作表合併與分割

單元05_資料查詢(篩選與分割工作表)

單元06_下載網路資料(YAHOO股市)

單元07_活頁簿與檔案處理(工作表分割與合併活頁簿)

單元08_視覺化報表與快速匯入圖片

 

其他相關學習:

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

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

EXCEL VBA網路爬取大樂透歷史資料

如果想將網路上總共有57頁網頁資料複製到EXCEL工作表中,

如果用土法煉鋼是非常花時間的事,如果每天需要經常性抓取網路資料,

真的非常必要用VBA程式來完成

其實就是目前很夯的網路爬蟲,

Python 程式相比,VBA相對比較親民一些,

直接抓取到EXCEL相對的好處理後續的動作

利用VBA程式,配合 For迴圈+If邏輯判斷一下

基本上程式就可以快速一鍵完成資料下載。

接下來要產生報表作統計分析,或是視覺化圖表就更簡單了。

以下有六個步驟如下,

1.錄製巨集與修改VBA程式

2.VBA寫刪除日期列

3.VBA寫複製日期

4.VBA寫刪除列

5.VBA寫增加中獎號碼

 

6.VBA寫剖析資料

 

 

完成畫面:


統計結果:

 

 

大樂特歷史資料下載程式碼

 

 

**利用資料的從WEB功能下載資料,再利用錄製巨集產生基本VBA程式加以修改

1.資料的從WEB功能

 

程式碼:

Sub 大樂透下載()

    With ActiveSheet.QueryTables.Add(Connection:= _

        "URL;https://www.lotto-8.com/listltobigbbk.asp?indexpage=1&amp;orderby=new", _

        Destination:=Range("$A$1"))

        .WebFormatting = xlWebFormattingNone

        .WebTables = "5"

        .Refresh BackgroundQuery:=False

    End With

End Sub

 

Sub 批次大樂透下載()

    For i = 1 To 57

        '1.匯入WEB資料

        If Range("A1") = "" Then

            r = 1

        Else

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

        End If

        With ActiveSheet.QueryTables.Add(Connection:= _

            "URL;https://www.lotto-8.com/listltobigbbk.asp?indexpage=" &amp; i &amp; "&amp;orderby=new" _

            , Destination:=Range("$A$" &amp; r))

            .WebFormatting = xlWebFormattingNone

            .WebTables = "5"

            .Refresh BackgroundQuery:=False

        End With

    Next

End Sub

 

VBA程式碼

Sub 刪除日期列()

    For i = Range("A1").End(xlDown).Row To 2 Step -1

        If Cells(i, "A") = "日期" Then

            Rows(i).Delete

        End If

    Next

End Sub

Sub 複製日期()

    For i = 2 To Range("A1").End(xlDown).Row

        If (i - 2) Mod 3 = 0 Then

            Cells(i, "A") = Cells(i + 1, "A")

            Cells(i, "A").NumberFormatLocal = "yyyy/m/d"

        End If

    Next

End Sub

Sub 刪除列()

    For i = Range("A1").End(xlDown).Row To 4 Step -3

        Rows(i).Delete

        Rows(i - 1).Delete

    Next

End Sub

Sub 增加中獎號碼()

    For j = 1 To 6

        Cells(1, j + 3) = j

    Next

End Sub

Sub 剖析資料()

    For i = 2 To Range("A1").End(xlDown).Row

        Range("D" &amp; i &amp; ":I" &amp; i) = VBA.Split(Cells(i, "B"), ",")

    Next

End Sub

Sub 刪除B欄()

    Columns("B").Delete

    Columns.AutoFit

End Sub

Sub 大樂透下載()

    Call 批次大樂透下載

    Call 刪除日期列

    Call 複製日期

    Call 刪除列

    Call 增加中獎號碼

    Call 剖析資料

    Call 刪除B欄

End Sub

 

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

 

教學影音完整版在論壇:

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

 

EXCEL VBA進階班的課程規劃

 

主要是延伸入門課,延伸資料庫、多工作表、工作簿、網路爬蟲、視覺化報表等應用並與Python程式協同應用

單元01_資料拆解相關(VBA)

單元02_輸入自動化與表單設計

單元03_用ADO匯入與匯出資料庫

單元04_大量工作表合併與分割

單元05_資料查詢(篩選與分割工作表)

單元06_下載網路資料(YAHOO股市)

單元07_活頁簿與檔案處理(工作表分割與合併活頁簿)

單元08_視覺化報表與快速匯入圖片

 

其他相關學習:

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

文章標籤

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

用EXCEL VBA快速將大量的EXCEL檔轉為PDF檔

 

這是EXCEL VBA進階課程的單元七的大量工作表的分割時講到,

剛好有學員問道如果想把大量的工作表,直接分割為PDF檔,

該怎麼做?其實只要一個For迴圈配合ExportAsFixedFormat方法,

就可以快速的將大量的工作表輸出為一個一個的PDF檔,

省去人工所要花費的時間,如果你每天都需要將工作表轉為PDF,

這個分享,應該可以幫到您很多的忙,節省大量時間。

 

其他可參考

如何用EXCEL VBA批次轉PDF檔  [連結]
[問題詢問]如何修改VBA讓EXCEL自動轉存成PDF時不會出現副檔名 [連結]
先學會如何用EXCEL VBA批次另存成2003與CSV等格式 [連結]
如何用EXCEL VBA自動批次匯入圖片與超連結 [連結]
如何增加EXCEL VBA按鈕 [連結]

 

預覽:


大數時代來臨如果不懂得裡用自動化方式處理資料,

處理資料將非常沒有效率,

至於處理大數據的方案很多,

但最通行也沒有額外費用的大概只剩VBA了。

而且開啟EXCEL就包含VBA,除了在Windows外,

MAC蘋果電腦一樣也有EXCEL,

VBA也可以沿用以前VB的資源,這樣看來VBA處理大數據應該沒有什麼對手了。

 

 

 

程式碼:

Public Sub 批次將工作表轉存為工作簿_PDF()

    If Dir("C:\Users\SCU\Desktop\VBA\*.xlsx") &lt;&gt; "" Then Call 刪除檔案

    

    Application.FileDialog(msoFileDialogFolderPicker).Show

    sPath = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1)

 

    Application.ScreenUpdating = False

    For i = 2 To 14

        x = Sheets("甲班").Cells(i, "I")

        Sheets(x).Copy

        ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sPath &amp; "\" &amp; x &amp; ".pdf"

        ActiveWorkbook.Close False

    Next

    Sheets("甲班").Select

    Application.ScreenUpdating = True

End Sub

 

 

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

 

教學影音完整版在論壇:

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

 

EXCEL VBA進階班的課程規劃

 

主要是延伸入門課,延伸資料庫、多工作表、工作簿、網路爬蟲、視覺化報表等應用並與Python程式協同應用

單元01_資料拆解相關(VBA)

單元02_輸入自動化與表單設計

單元03_用ADO匯入與匯出資料庫

單元04_大量工作表合併與分割

單元05_資料查詢(篩選與分割工作表)

單元06_下載網路資料(YAHOO股市)

單元07_活頁簿與檔案處理(工作表分割與合併活頁簿)

單元08_視覺化報表與快速匯入圖片

 

其他相關學習:

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

文章標籤

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

範例_字串切割與Do_While迴圈不定數量結果

 

練習檔 [下載]

這個範例是學員工作上的問題,

每天都需要將儲存格中的超連結取出到B欄中,

若儲存格中只有一個超連結還好解決,

可以用Find函數找中括弧位置,再用Mid函數切割,

剛好這個範例裡面不只一個超連結,

可能有兩個、三個甚至更多,

也就是數量不定,如果要用For迴圈,也要知道數量範圍,

所以只能用 Do While 迴圈了,

從第一個字找起,之後再從找到的位置加一再找了,該如何做。

預覽影片:

 

一、函數

=FIND(C$1,A2)

=FIND(D$1,A2)

=MID(A2,C2+1,D2-C2-1)

 

如果用VBA撰寫的程式

 

一、階段一,先撰寫只取一個超連結

外面的For迴圈是跑每一列,用 Instr函數找"【&lt;"和"&gt;】",

分別放在將找到位置的值放在 a和b 中,

如果a或b為0,表示找不到。

 

Sub 字串切割()

    '1.迴圈範圍

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

        '2.取得頭尾位置與切割字串

        a = VBA.InStr(Cells(i, "A"), "【&lt;")

        b = VBA.InStr(Cells(i, "A"), "&gt;】")

        If a &lt;&gt; 0 Then

            '5.輸出結果

            Cells(i, "B") = Mid(Cells(i, "A"), a + 1, b - a)

        End If

    Next

End Sub

 

如果多個超連結,可以先多產生 a1和b1變數,預設值為 1,

即從頭找起,找到之後再把  a1和b1 加1之後繼續找,

直到找不到為止,Do While 後面就是邏輯,為 True 就繼續找,

反之就離開迴圈了。

 

Sub 字串切割_所有超連結()

    '1.迴圈範圍

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

        '兩個位置初始值,從1開始找

        a1 = 1

        b1= 1

        '2.取得頭尾位置與切割字串

        '當找到關鍵字就執行以下程序

        Do While InStr(a1, Cells(i, "A"), "【&lt;") &lt;&gt; 0

            a = InStr(a1, Cells(i, "A"), "【&lt;")

            b = InStr(b1, Cells(i, "A"),  "&gt;】")

            S = S &amp; Mid(Cells(i, "A"), a + 1, b - a) &amp; Chr(10)

            a1 = a + 1

            b1 = b + 1

        Loop

        '輸出到B欄

        Cells(i, "B") = S

        '清空變數資料

        S = ""

    Next

End Sub

 

以下是清除資料的程式碼

 

Public Sub 清除()

    Range("B2:B" &amp; Range("B2").End(xlDown).Row).ClearContents

End Sub

 

以上範例主要學會如何用 VBA的 Instr與Mid函數取出要的資料,

如果範圍不定,一定要懂得使用 Do While迴圈了。

 

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

 

教學影音完整版在論壇:

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

 

EXCEL VBA進階班的課程規劃

 

主要是延伸入門課,延伸資料庫、多工作表、工作簿、網路爬蟲、視覺化報表等應用並與Python程式協同應用

單元01_資料拆解相關(VBA)

單元02_輸入自動化與表單設計

單元03_用ADO匯入與匯出資料庫

單元04_大量工作表合併與分割

單元05_資料查詢(篩選與分割工作表)

單元06_下載網路資料(YAHOO股市)

單元07_活頁簿與檔案處理(工作表分割與合併活頁簿)

單元08_視覺化報表與快速匯入圖片

 

其他相關學習:

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

文章標籤

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

直接用VBA取得儲存格中的數字或英文資料

 

之前常有同學問到,若是儲存格中,中、英、數字資料夾雜,

若只想留下數字部分,該怎麼做,有沒有函數可以解決,

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

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

本文分享如何簡單解決這個問題,

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

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

建議,這麼複雜的事情,還是改為VBA來做會比較適合,

也許直接跳過 EXCEL裡的函數,

直接寫 VBA 回更簡單,以下簡單說明如下。


預覽畫面:

 

VBA部分:

 

階段一:

Sub 數字個數()

    For i = 2 To 9

        c = 0

        For j = 1 To Len(Cells(i, "A"))

            If VBA.Asc(Mid(Cells(i, "A"), j, 1)) &gt; 47 And VBA.Asc(Mid(Cells(i, "A"), j, 1)) &lt; 58 Then

                c = c + 1

            End If

        Next

        Cells(i, "B") = c

    Next

End Sub

 

Sub 非數字個數()

    For i = 2 To 9

        '1.字數迴圈範圍

        c = 0

        For j = 1 To Len(Cells(i, "A"))

            '2.判斷是否為數字

            If VBA.Asc(Mid(Cells(i, "A"), j, 1)) &lt;= 47 Or VBA.Asc(Mid(Cells(i, "A"), j, 1)) &gt;= 58 Then

                '3.如果是就+1

                c = c + 1

            End If

        Next

        '4.傳給B欄i列的儲存格

        Cells(i, "C") = c

    Next

End Sub

 

Sub 留下數字()

    For i = 2 To 9

        '1.字數迴圈範圍

        S = ""

        For j = 1 To Len(Cells(i, "A"))

            '2.判斷是否為數字

            If VBA.Asc(Mid(Cells(i, "A"), j, 1)) &gt; 47 And VBA.Asc(Mid(Cells(i, "A"), j, 1)) &lt; 58 Then

                '3.如果是就+1

                S = S &amp; Mid(Cells(i, "A"), j, 1)

            End If

        Next

        '4.傳給B欄i列的儲存格

        Cells(i, "D") = S

    Next

End Sub

 

Sub 留下英文()

    For i = 2 To 9

        '1.字數迴圈範圍

        S = ""

        For j = 1 To Len(Cells(i, "A"))

            '2.判斷是否為數字

            If VBA.Asc(VBA.UCase(Mid(Cells(i, "A"), j, 1))) &gt; 64 And VBA.Asc(VBA.UCase(Mid(Cells(i, "A"), j, 1))) &lt; 91 Then

                '3.如果是就+1

                S = S &amp; Mid(Cells(i, "A"), j, 1)

            End If

        Next

        '4.傳給B欄i列的儲存格

        Cells(i, "E") = S

    Next

End Sub

 

Public Sub 留下中文()

    For i = 2 To 9

        '1.字數迴圈範圍

        S = ""

        For j = 1 To Len(Cells(i, "A"))

            '2.判斷是否為數字

            If VBA.Asc(Mid(Cells(i, "A"), j, 1)) &lt; 0 Or VBA.Asc(Mid(Cells(i, "A"), j, 1)) &gt; 127 Then

                '3.如果是就+1

                S = S &amp; Mid(Cells(i, "A"), j, 1)

            End If

        Next

        '4.傳給B欄i列的儲存格

        Cells(i, "F") = S

    Next

End Sub

 

Public Sub 清除()

    Range("B2:F9").ClearContents

 

End Sub

 

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

 

教學影音完整版在論壇:

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

 

EXCEL VBA進階班的課程規劃

 

主要是延伸入門課,延伸資料庫、多工作表、工作簿、網路爬蟲、視覺化報表等應用並與Python程式協同應用

單元01_資料拆解相關(VBA)

單元02_輸入自動化與表單設計

單元03_用ADO匯入與匯出資料庫

單元04_大量工作表合併與分割

單元05_資料查詢(篩選與分割工作表)

單元06_下載網路資料(YAHOO股市)

單元07_活頁簿與檔案處理(工作表分割與合併活頁簿)

單元08_視覺化報表與快速匯入圖片

 

其他相關學習:

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

文章標籤

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

EXCEL匯出資料到MYSQL與PHP、Phthon、R、APP共用資料

 

將資料存放在MYSQL可以解決多平台不同開發工具共用資料問題,

PHP、Phthon、R、APP的共用資料,EXCEL又是最普遍的辦公室應用程式,

所以若能將兩者串連,相信可以讓資料運用更加彈性。

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

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

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

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

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

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

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

這篇文章主要是在VBA中呼叫ADO,並用SQL語言和MYSQL溝通,

淺顯易懂,而且容易操作,和大家分享,

不過比較困難的部分,

可能要注意:

1.Windoms有沒有安裝IIS,有就一定要停止,或換PORT號。

2.執行ADO一定要安裝MYSQL的驅動程式。

3.連線字串可以參考 ConnectionStrings 網站:https://www.connectionstrings.com/

 

預覽畫面:

 

可以先參考:

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安裝的懶人包 [下載]

 

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

 

 

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

 

 

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

 

 

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

建立資料庫

3.建立資料表

 

建立問題2資料表

 

 

INSERT INTO `問題2`(`編號`, `品名`, `單價`, `數量`, `小計`, `地區`) VALUES ('0001','玩具',399,46,18354,'東')

 

 

程式碼:

Sub 新增單筆()

 

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

   A = Cells(r, 1)

   B = Cells(r, 2)

   C = Cells(r, 3)

   D = Cells(r, 4)

   E = Cells(r, 5)

   F = Cells(r, 6)

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

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

End Sub

Sub 新增全部()

 

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

       A = Cells(i, 1)

       B = Cells(i, 2)

       C = Cells(i, 3)

       D = Cells(i, 4)

       E = Cells(i, 5)

       F = Cells(i, 6)

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

       Application.StatusBar = "新增到第" & i - 1 & "筆"

   Next

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

End Sub

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

 

   '1.建立Connection物件

   Set myCon = CreateObject("ADODB.Connection")

   '2.連結資料庫

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

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

   Sql = "INSERT INTO 問題2 (編號, 品名, 單價, 數量, 小計, 地區) VALUES ('" & _

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

   'MsgBox (Sql)

   Set myRs = myCon.Execute(Sql)

End Sub

Public Sub 刪除EXCEL資料()

 

   Range("A2:F" & Range("A2").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=問題2;User=root;Password=1234;Option=3;"

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

   Sql = "Select * from 問題2"

   'MsgBox (Sql)

   Set myRs = myCon.Execute(Sql)

   Range("A2").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=問題2;User=root;Password=1234;Option=3;"

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

   Sql = "Delete from 問題2"

   'MsgBox (Sql)

   Set myRs = myCon.Execute(Sql)

End Sub

 

**如何遠端連線

1.新增使用者

 

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

 

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


 

**新增全部_進度狀態列

 

完成畫面:

 

 

表單屬性

 

標籤屬性

 

 

Private Sub UserForm_Activate()

 

   '狀態列歸零

   PB.Width = 0

   '取得總列數

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

   For i = 2 To r

       A = Cells(i, 1)

       B = Cells(i, 2)

       C = Cells(i, 3)

       D = Cells(i, 4)

       E = Cells(i, 5)

       F = Cells(i, 6)

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

       '更新狀態列用400去除

       PB.Width = (i - 1) * (400 / (r - 1))

       '更新表單

       home.Repaint

       Application.StatusBar = "新增到第" & i - 1 & "筆"

   Next

   home.Hide

End Sub


 

Sub 新增全部_進度狀態列()

 

   home.Show

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

End Sub

 

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

 

教學影音完整版在論壇:

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

 

課程特色:

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

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

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

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

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

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

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

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

 

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

 

其他相關學習:

 

    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用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) &lt;&gt; 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") &lt;&gt; 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函數&amp;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(清單 &amp; "2").End(xlDown).Row

         For i = 2 To r

             Application.StatusBar = "目前進度:總共筆數:" &amp; r - 1 &amp; " 進行筆數:" &amp; 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函數&amp;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$" &amp; 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 = "=*" &amp; X &amp; "*"

           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函數&amp;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改用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物件&amp;連結資料表

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

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

             'MsgBox (Sql)

             Set myRs = myCon.Execute(Sql)

          End Sub

          Public Sub 刪除EXCEL資料()

             Range("B3:F" &amp; 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;" &amp; "Data Source=" &amp; ThisWorkbook.Path &amp; "\問題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物件&amp;連結資料表

             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;" &amp; "Data Source=" &amp; ThisWorkbook.Path &amp; "\問題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物件&amp;連結資料表

             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函數&amp;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與資料庫總整理(進階)

             

            發表時間

            文章標題

            2016-04-11

            EXCEL VBA如何字串切割(用MID與FIND函數)

            2016-02-27

            公訓處Big Data加值應用課程分享

            2016-01-29

            EXCEL VBA如何排序工作表並另存EXCEL檔與郵寄

            2016-01-27

            用EXCEL表單增加進度列與更新狀態

            2016-01-22

            用EXCEL一鍵批次下載股市資料(大數據實例)

            2016-01-21

            用EXCEL批次查詢實價登錄開放資料(大數據處理實例)

            2016-01-21

            用EXCEL設計按清單批次查詢資料(自動新增工作表)

            2016-01-21

            用EXCEL快速建立資料查詢系統(錄製巨集與修改)

            2016-01-21

            用EXCEL VBA合併12個月工作表到總表

            2016-01-20

            用EXCEL VBA建立表單與命名並新增下拉清單

            2015-11-09

            如何用VBA下載網路資料到EXCEL中(EXCEL當資料庫用)

            2015-09-16

            如何在EXCEL VBA新增沒有重複名稱工作表

            2015-09-14

            EXCEL VBA處理股票分析自動最佳化範例

            2015-08-21

            如何用EXCEL VBA批次轉PDF檔

            2015-08-18

            如何用EXCEL VBA批次查詢實價登錄開放資料

            2015-07-31

            如何用EXCEL VBA匯整12個月資料到總表

            2015-07-28

            如何用EXCEL VBA批次另存成2003與CSV等格式

            2015-07-17

            如何設計VBA表單與將EXCEL當資料庫用(86期)

            2015-07-15

            如何用EXCEL VBA自動每日外匯行情

            2015-07-13

            如何用EXCEL VBA自動批次匯入圖片與超連結

            2015-07-01

            如何將VB.NET大樂透開獎程式改為VBA版本

            2015-06-22

            如何用EXCEL VBA快速合併工作表

            2015-06-14

            EXCEL VBA的工作表處理--工作表顏色

            2015-06-14

            如何在EXCEL工作表中移動

            2015-06-14

            如何在EXCEL VBA新增沒有重複名稱工作表

            2015-06-14

            如何在EXCEL VBA如何保護工作表

            2015-06-14

            如何在EXCE VBA中複製工作表

            2015-06-14

            如何用VBA快速取得期貨交易資料(開收高低量)

            2015-06-13

            如何批次下載股市資料到EXCEL中之1

            2015-05-21

            如何設計VBA表單與EXCEL當資料庫用(85期)

            2015-04-03

            如何學會EXCEL VBA資料庫系列之一

            2015-02-02

            如何批次下載股市資料到EXCEL中之2

            2015-01-31

            如何用VBA快速取得期貨交易資料(開收高低量)

            2015-01-29

            EXCEL VBA辦公自動化_如何建立查詢系統

            2015-01-28

            如何移動工作表與排序之1

            2015-01-27

            如何批次下載股市資料到EXCEL中

            2015-01-27

            如何快速在EXCEL中建立查詢系統(免資料庫)之2

            2015-01-27

            如何將單次查詢改為批次查詢(EXCEL VBA自動化)

            2015-01-16

            如何精簡VBA程式與傳遞引數

            2015-01-16

            如何快速在EXCEL中建立查詢系統(免資料庫)之1(01_如何將資料分離(查詢系統建立))

            2015-01-16

            如何將大量工作表整合在一個工作表

            2015-01-16

            如何在EXCEL VBA新增沒有重複名稱工作表

            2015-01-16

            如何排序工作表(東吳EXCEL_VBA自動化)

            2015-01-16

            如何在EXCE VBA中複製工作表

            文章標籤

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

            EXCEL VBA如何字串切割(用MID與FIND函數)

             

            預覽畫面:

             

            範例檔:[連結]

             

            這部分可以參考之前的教學:

            如何利用VLOOKUP函數與MID函數取得資料 [連結]


            如何學會字串處理與VBA設計之二(範例:百家姓)  [連結]

             

            如何用EXCEL VBA批次轉PDF檔   [連結]

             

            針對廣大的上班族,每天大量使用EXCEL自動化

            若不知道更有效率的應用,每天浪費在土法煉鋼的時間時在太多,

            如何增進EXCEL的工作表效率,是本文想分享的。

            今天的案例是學員提的問題,

            他每天都需要將超連結部分字串從儲存格中切割出來,

            用人工也能完成,但大量資料似乎不那麼有效率,

            除了人力耗損,時間也是百倍以上,

            如何加快效率,

            可以分為EXCEL函數與VBA兩部分,VBA下次再談。

            EXCEL內建函數可以用MID與FIND函數(其實SEARCH函數也可以),

             

            設計流程:

            01_需求為將A欄中的超連結切割到B欄

            02_先用FIND函數找尋前括弧與後括弧位置

            03_再用MID函數切割即可

            04_例外裝況_有兩個超連結

            05_用FIN函數找第二個超連結位置

            06_如果找不到就顯示找不到

            07_用MID切割完成

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

             

            教學影音完整版在論壇:

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

             

            課程特色:

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

             

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

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

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

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

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

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

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

             

            上課用書是:

            Excel函數&amp;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函數

            文章標籤

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

            公訓處Big Data加值應用課程分享

             

            台北市公訓處之邀,在一天六小時裡來談Big Data加值應用

            因為時間短,所以能講得並不可能太深入,

            時間不多,所以應用的方式,

            就以大家比較熟悉的 EXCEL環境配合函數與VBA做加值應用,

            處理大數據的應用能力已經漸漸變為平時工作的一部分,

            如果不能適時地升級自己的專業技能,

            用人工處理將無法處理這些大數據,

            因此學習快速處理的自動化技巧,將成為辦公室應用的趨勢

             

            參考資料

            翟本喬大數據的理念與應用 2015.03.02

            https://www.youtube.com/watch?v=OQQO08EX6TM(49:29)

            結論:

            真正的價值,是在後面怎麼寫出程式來分析這些數據

             

            課程理念

            根據維基百科:

            大數據(英語:Big data或Megadata),或稱巨量資料、海量資料、大資料

            指的是所涉及的資料量規模巨大到無法透過人工,在合理時間內達到擷取、管理、處理、並整理成為人類所能解讀的形式的資訊。

            可用來察覺商業趨勢、判定研究品質、避免疾病擴散、打擊犯罪或測定即時交通路況等;這樣的用途正是大型資料集盛行的原因

             

            維基百科定義

            在一份2001年的研究與相關的演講中,麥塔集團(META Group,現為高德納)分析員道格·萊尼(Doug Laney)指出資料增長的挑戰和機遇有三個方向:

            量(Volume,資料大小)

            速(Velocity,資料輸入輸出的速度)

            多變(Variety,多樣性),合稱「3V」或「3Vs」

            另外,有機構在3V之外定義第4個V:真實性(Veracity)

            大數據必須藉由計算機對資料進行統計、比對、解析方能得出客觀結果。

            美國在2012年就開始著手大數據,歐巴馬更在同年投入2億美金在大數據的開發中,更強調大數據會是之後的未來石油。

             

            何謂巨量資料 

            Big Data資料特徵與趨勢

            應用範例

            RFID、感測裝置網路、天文學、大氣學、交通運輸、基因組學、生物學、大社會資料分析、網際網路檔案處理

            製作網際網路搜尋引擎索引、通信記錄明細、軍事偵查、社群網路、通勤時間預測、醫療記錄、相片圖像和影像封存、電子商務等。

            政府以巨量資料打擊與預防犯罪,強化國安

            槓桿社群與公開性資料提升預測準確性

             

            巨量資料應用的成功案例

            Google – 流感趨勢預測

            Google發現,某些搜尋關鍵字有助於追蹤流感疫情發展,彙總搜尋資料,提供近乎即時的全球流感疫情趨勢預測

            Google曾在美國的九個地區做了測試,發現此技術比聯邦疾病控制和預防中心提前7到14天準確預測了流感爆發

            阿里巴巴將消費者數據轉化為企業獲利,小額貸款無需抵押和擔保,直接實現了網路數據的價值。截至2013年,阿里小貸累計獲貸客戶數64.2萬家,累計放款1,722億元人民幣

            電視新聞與巨量資料結合,2014年春運(36億人次),百度利用巨量分析觀察大陸過年時人類的遷移行為,並以易懂的視覺化呈現在人們眼前

             

            注意

            巨量資料5大觀念,挖出潛在新商機

            資料數量要夠大、夠多,量比質更重要

            找出「相關性」,而非因果關係

            地理位置、情緒貼文、社群圖譜、看似無用的散漫紀錄,都是有用的

            只要有巨量資料思惟,小公司也能靠創新的點子致勝

            要小心資料獨裁,不要被巨量資料掌控

            駕馭資料,發揮創意,做對關鍵決策,達成智能管理

            出處:《大數據》牛津大學教授 麥爾荀伯格

             

            Big Data海量資料的分析概說:

            Big Data資料加值應用與相關範例

            如何取得Big Data的方式?

             開放資料範例

              內政部實價登錄YAHOO股市資料

            GOOGLE表單

              範例:GOOGLE試算表複選結果資料切割

            如何處理與統計分析Big Data?

             EXCLE統計函數

              範例:黑名單篩選樂透彩中獎機率

             樞紐分析表

              範例:銷貨系統分析

             開放資料加值應用實例

              範例:實價登錄用EXCEL一鍵批次下載股市資料

             EXCLE VBA(與R語言比較)

             PowerPivot增益集

              海量資料的分析工具-PowerPivot實作演練

              視覺化數位儀表與報表–PowerView資料地圖實作

             

            與大數據課程的經驗

            超過20年的程式設計教學經驗(VBA、VB.NET、ASP.NET、JAVA、ANDROID、PHP等)

            台北市公務人員訓練處:Big Data資料加值應用

            新北市勞工大學:EXCEL VBA大數據自動化進階

            東吳大學進修推廣部:EXCEL VBA 與資料庫雲端設計(初階與進階)

            自強工業基金會:從Excel函數到VBA雲端巨量資料庫應用班

             

            多年的實務與教學經驗所累積的課程範例,最短時間學會處理大數據,

            以提高效率,正確決策。

             

            預覽:

             

            教學影音:

             

            其他相關學習:

              教學論壇:

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

               

              與前幾期的課程雖然用的是相同的範例,但最大的不同在:

              1.除了解說建函數公式,並將之轉成自訂函數,把複雜的公式變簡單。

              2.如何將複雜的公式變成簡單的按鈕,按下按鈕就自動完成工作。

               

              內容主要分成:

              1.常用函數

              2.進階函數應用

              3.從函數到VBA設計

              4.如何自訂函數

              5.VBA程式設計入門

              6.如何錄製巨集與修改

              7.如何將大量資料轉存到資料庫

              8.如何讀取資料庫資料

              詳細目錄:http://goo.gl/eQptxx

               

              有講義與範例和完成的畫面公式與程式碼,

              只要按照每周的順序學習,學會EXCEL VBA自動化絕非難事,

              優點:

              1.可非線性學習:可按照自己最不熟的部分多次學習。

              2.可反覆學習:有疑問可以多次聽講,保證學的會。

              3.可攜帶學習:只要有瀏覽器就可以播放SWF檔,MAC電腦也沒問題。

               

              上課參考用書:

              看!就是比你早下班-50個ExcelVBA高手問題解決法

              作者:楊玉文  出版社:松崗

              出版日期:2011年02月15日  定價:550元

               

              課程理念:

              1.以循序漸進的方式, 透過詳細的說明和實用的Excel VBA範例, 逐步了解整個 VBA 的架構與輪廓,進而學習 VBA 變數、函式及邏輯的觀念, 即使沒有任何程式設計基礎, 也能自己親手撰寫 VBA 程序來提昇工作效率, 晉身職場 Excel 高手! 2.進而解說EXCEL與資料庫的結合,將EXCEL當成資料庫來使用,結合函數、VBA等更深入的功能,讓資料處理和分析的應用更上層樓。 3.將結合GOOGLE雲端試算表,教您如何將EXCEL函數雲端化與網路化。

               

              更多EXCEL VBA連結:

              01_EXCEL函數與VBA http://terry28853669.pixnet.net/blog/category/list/1384521

              02_EXCEL VBA自動化教學 http://terry28853669.pixnet.net/blog/category/list/1384524

               

              吳老師  105/2/15

               

              台北市公務人員訓練處,big data應用,big data定義,big data是什麼,大數據分析教學,excel數據分析,excel數據圖表,大數據應用實例,大數據應用案例,開放資料應用,open data應用

              文章標籤

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

              EXCEL VBA如何排序工作表並另存EXCEL檔與郵寄

               

              預覽畫面:

              <iframe width="420" height="315" src="https://www.youtube.com/embed/2CG2gS62VCc" frameborder="0" allowfullscreen></iframe>

               

              這部分可以參考之前的教學:

              如何在EXCEL工作表中移動 [連結]

               

              如何排序工作表(東吳EXCEL_VBA自動化)  [連結]

               

              如何移動工作表與排序之1   [連結]

               

               

              針對廣大的上班族,每天大量使用EXCEL自動化

              若不知道更有效率的應用,每天浪費在土法煉鋼的時間時在太多,

              如何增進EXCEL的工作表效率,是本文想分享的。

              常常用到大量工作表的排序問題,

              如果用人工手動排序,若是小量資料還好,

              大量的工作表排序恐怕就會有問題,

              本文主要分享如何用VBA批次排序方式

              可以將排序放在陣列來排序,

              或是把排序的順序放在某範圍,讀取後來移動工作表排序,

              或是依筆劃排序,

              排序完之後也可以自動存檔

              並且用OUTLOOK自動郵寄給收件者,

              若懂得VBA的自動化,將讓效率大大提高,工作自然更加愉快。

              設計流程:

              01_如何用陣列排序工作表順序

              02_排序依據某範圍

              03_從某範圍排序程式碼

              04_建立筆劃排序清單

              05_動態建立清單與按筆劃排序

              06_建立下拉清單依照需求排序

              07_自動將排序結果另存EXCEL檔

              08_將輸出的EXCEL檔用OUTLOOK郵寄

               

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

              <iframe width="420" height="315" src="https://www.youtube.com/embed/7LtAqkGjP4E" frameborder="0" allowfullscreen></iframe>

               

              教學影音完整版在論壇:

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

               

              課程特色:

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

               

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

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

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

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

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

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

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

               

              上課用書是:

              Excel函數&amp;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函數

              文章標籤

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

              用EXCEL表單增加進度列與更新狀態

               

              預覽畫面:

               

              這部分可以參考之前的教學:

              如何顯示進度狀態列(ProgressBar) [連結]

               

              這是表單設計的延伸部分,

              主要是程式如果大量批次處理

              如果畫面上沒有進度列更新狀態

              如果太久沒回應,將讓使用者無所適從,

              如何增加進度列在表單下方或明顯處?

              設計流程:

              01_完成畫面

              02_先增加進度元件

              03_將進度元件增加到表單

              04_元件程式歸零與設定最大值並迴圈增加值

               

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

               

              教學影音完整版在論壇:

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

               

              課程特色:

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

               

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

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

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

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

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

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

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

               

              上課用書是:

              Excel函數&amp;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函數

              文章標籤

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

              用EXCEL一鍵批次下載股市資料(大數據實例)

              預覽:


              如何批次下載網路上的資料到EXCEL中並不那麼困難,

              這篇發文之前也有幾篇類似的文章,

              從最早的EXCEL VBA程第14次上課(如何破解網頁股市資料) [連結]

              學會如何修改JAVASCRIPT,讓YAHOO資料順利下載,

              但卻不是最好的辦法,之後還有

              如何自動下載YAHOO股市資料到EXCEL中 [連結]

              之後還有比較近的分享:

              如何批次下載股市資料到EXCEL中之1  [連結]

              如何批次下載股市資料到EXCEL中之2   [連結]

              還有學員分享的範例:

              如何用EXCEL VBA自動每日外匯行情   [連結]

              但最近整理下來,

              如果要順利批次下載網路資料,

              需要幾個步驟,

              1.收集下載的清單(例股市與網址兩欄)

              2.錄製單次下載網路資料的巨集

              3.修改巨集的WebTable

              4.將單次改為批次下載,並加入刪除與新增工作表程式碼

              流程如下:

              01_完成畫面

              02_到YAHOO股市下載資料

              03_從EXCEL下載YAHOO股市資料並錄製巨集

              04_錄製巨集結果並修改WebTable

              05_修改WebTable以破解保護

              06_將單次下載改為批次下載

              程式碼:


              教學影音:


              不足之處思考:

              • 如何快速將網頁中的網址變為表格?
              • 如何在下在資料時順便篩選需要的結果(如只下載上漲的資料)
              • 如何把改寫成固定時間自動下載資料?

              其他相關學習:

              教學論壇:

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

              與前幾期的課程雖然用的是相同的範例,但最大的不同在:

              1.除了解說建函數公式,並將之轉成自訂函數,把複雜的公式變簡單。

              2.如何將複雜的公式變成簡單的按鈕,按下按鈕就自動完成工作。

              內容主要分成:

              1.常用函數

              2.進階函數應用

              3.從函數到VBA設計

              4.如何自訂函數

              5.VBA程式設計入門

              6.如何錄製巨集與修改

              7.如何將大量資料轉存到資料庫

              8.如何讀取資料庫資料

              詳細目錄:http://goo.gl/eQptxx

              有講義與範例和完成的畫面公式與程式碼,

              只要按照每周的順序學習,學會EXCEL VBA自動化絕非難事,

              優點:

              1.可非線性學習:可按照自己最不熟的部分多次學習。

              2.可反覆學習:有疑問可以多次聽講,保證學的會。

              3.可攜帶學習:只要有瀏覽器就可以播放SWF檔,MAC電腦也沒問題。

              上課參考用書:

              看!就是比你早下班-50個ExcelVBA高手問題解決法

              作者:楊玉文  出版社:松崗

              出版日期:2011年02月15日  定價:550元

              課程理念:

              1.以循序漸進的方式, 透過詳細的說明和實用的Excel VBA範例, 逐步了解整個 VBA 的架構與輪廓,進而學習 VBA 變數、函式及邏輯的觀念, 即使沒有任何程式設計基礎, 也能自己親手撰寫 VBA 程序來提昇工作效率, 晉身職場 Excel 高手! 2.進而解說EXCEL與資料庫的結合,將EXCEL當成資料庫來使用,結合函數、VBA等更深入的功能,讓資料處理和分析的應用更上層樓。 3.將結合GOOGLE雲端試算表,教您如何將EXCEL函數雲端化與網路化。

              更多EXCEL VBA連結:

              01_EXCEL函數與VBA http://terry28853669.pixnet.net/blog/category/list/1384521

              02_EXCEL VBA自動化教學 http://terry28853669.pixnet.net/blog/category/list/1384524

              吳老師 2015/1/22


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


              文章標籤

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

              用EXCEL批次查詢實價登錄開放資料(大數據處理實例)

              預覽畫面:


              這是在東吳大學進修推廣部VBA進階課上課的範例,

              先學會如何將單次查詢改為批次查詢 [連結]

              資料庫批次篩選新增與更名工作表 [連結]

              如何批次下載股市資料到EXCEL中之1 [連結]

              大數時代來臨如果不懂得裡用自動化方式處理資料,

              處理資料將非常沒有效率,

              至於處理大數據的方案很多,

              但最通行也沒有額外費用的大概只剩VBA了。

              而且開啟EXCEL就包含VBA,除了在Windows外,

              MAC蘋果電腦一樣也有EXCEL,

              VBA也可以沿用以前VB的資源,這樣看來VBA處理大數據應該沒有什麼對手了。

              本範例主要是利用EXCEL的篩選功能時做成VBA

              可以一鍵就可以批次查出政府開放的實價登錄的查詢結果

              自動依據清單,可以自動將清單項目,逐一自動新增工作表

              並將查詢結果匯入,也可以隨時更改查詢需求

              除了便利外,也非常有彈性

              並可結合從網路下載資料到EXCEL中,隨時更新最新的資訊。

              當然未來也可以結合雲端資料庫,與APP連動了。

              範例連結 [下載]

              結果畫面:

              上課內容:

              01_下載實價登錄練習檔

              02_手動建立清單分區交易標的與每坪單價

              03_撰寫批次查詢分區的VBA程序

              04_分區結果畫面

              05_將程序改為分標的與每坪單價與增加按鈕

              程式碼:


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

              教學影音完整版在論壇:

              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函數EXCEL,VBA,函數東吳進修推廣部,EXCEL VBA 函數 程式設計 線上教學 excel vba 教學 excel vba指令教學 vba範例教學excel  excel vba教學視頻 excel函數教學 excel函數
              文章標籤

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

              用EXCEL設計按清單批次查詢資料(自動新增工作表)

              預覽畫面:


              延續之前單次查詢系統的建立 [連結],

              也可以參考:

              如何將單次查詢改為批次查詢 [連結]與

              如何用EXCEL VBA批次查詢實價登錄開放資料 [連結]


              但若是經常性的清單式查詢資料

              單次查詢無法滿足,就可以自行設計批次查詢了,

              只需要懂得簡單迴圈取得清單資料,

              再將單次查詢改為批次即可,

              批次查詢尚需配合如何批次新增工作表

              批次刪除工作表等

              詳細內容:

              01_啟動選擇欄位表單批次查詢新增工作表

              02_建立清單工作表並產生不重複資料

              03_撰寫如何批次新增工作表

              04_撰寫如何批次刪除工作表

              05_錄製批次篩選業務巨集與修改程式

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

              教學影音完整版在論壇:

              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 VBA連結:

              01_EXCEL函數與VBA http://terry28853669.pixnet.net/blog/category/list/1384521

              02_EXCEL VBA自動化教學 http://terry28853669.pixnet.net/blog/category/list/1384524

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

              文章標籤

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

              Close

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

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

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

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

              reload

              請輸入左方認證碼:

              看不懂,換張圖

              請輸入驗證碼