吳老師教學部落格

2018年8月7日 星期二

EXCEL VBA進階範例尋找與判斷負0到9的值

EXCEL VBA進階範例尋找與判斷負0到9的值

預覽畫面:


本範例為進階VBA的程式範例,直接用自訂函數思考,
最後再用SUB呼叫,一改入門班的思考方式,
另外,多重邏輯也可以用迴圈來撰寫,
只是需要的是將數字轉為文字,可用Cstr函數轉換,
有點像EXCEL裡的Value函數。
程式需求:
1.如果儲存格中有-0到-9就返還 Apple

2.如果儲存格為空白就輸出空白,不然就輸出 Orange

1.完成畫面:


參考VBA程式碼:


Function FruitType(Type_Number)
   '如果儲存格中有-0到-9就返還 Apple
   For i = 0 To 9
       a = InStr(Type_Number, "-" & CStr(i))
       If a <> 0 Then
           FruitType = "Apple"
           Exit Function
       End If
   Next
   '如果儲存格為空白就輸出空白,不然就輸出 Orange
   If Type_Number = "" Then
       FruitType = ""
   Else
       FruitType = "Orange"
   End If
End Function

Public Sub Fruit()
   For i = 2 To 10
       Cells(i, "B") = FruitType(Cells(i, "A"))
   Next
End Sub

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

教學影音完整版在論壇:
https://groups.google.com/forum/#!forum/scu_excel_vba2_86

課程特色:
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

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

    2018年5月19日 星期六

    使用VBA製作銷貨訂購單與儲存資料(EXCEL當資料庫)

    使用VBA製作銷貨訂購單與儲存資料(EXCEL當資料庫)

    預覽畫面:


    本範例主要分享銷貨訂單的自動化EXCEL當成輸入介面
    當然也可以利用VBA裡的表單來製作,難度會比較高些,
    不過感覺會更專業些,但是無論哪種方式,
    最主要是可以輔助輸入的效率與正確性
    讓輸入資料不易出錯,
    也無法隨意竄改,
    所以需要最後配合保護工作表
    除了四個區域(單號、客戶、商品、數量)可以修改外,
    其他都不能修改,避免輸入資料正確性
    另外下拉清單也可以自動帶出其他資料
    這樣就可以加快輸入效率,
    最後,可以再利用VBA程式
    將所有資料存在銷貨明細一筆紀錄單號也自動加一之後,
    又可以繼續輸入資料,達到類似進銷存系統的目的。


    以下分享流程:
    1.訂單日期
    02_到貨日期
    03_到貨日期(避開六日)
    04_客戶
    05_序號
    06_商品
    07_小計
    08_保護工作表
    09_增加訂單明細工作表
    10_VBA程式畫面
    Public Sub 新增資料()
       '1.判斷在哪一列
       If Sheets("銷貨明細").Range("A2") = "" Then
           r = 2
       Else
           r = Sheets("銷貨明細").Range("A1").End(xlDown).Row + 1
       End If
       '2.輸出資料
       '單號
       Sheets("銷貨明細").Cells(r, "A") = Range("B2")
       '訂單日期
       Sheets("銷貨明細").Cells(r, "B") = Range("D2")
       '到貨日期
       Sheets("銷貨明細").Cells(r, "C") = Range("G2")
       '客戶編號
       Sheets("銷貨明細").Cells(r, "D") = Range("B3")
       '客戶名稱
       Sheets("銷貨明細").Cells(r, "E") = Range("C3")
       '連絡電話
       Sheets("銷貨明細").Cells(r, "F") = Range("G3")
       '地址
       Sheets("銷貨明細").Cells(r, "G") = Range("B4")
       '銷貨總額
       Sheets("銷貨明細").Cells(r, "H") = Range("G4")
      
       '3.清空資料
       'Range("B2") = ""
       Range("B3") = ""
       Range("E2") = ""
       Range("B7:B16").ClearContents
       Range("F7:F16").ClearContents


       '4.單號加1
       Range("B2") = Range("B2")+ 1
    End Sub

    **如果編號為S000X

       Range("B2") = Left(Range("B2"), 1) & Format(Right(Range("B2"), 4) + 1, "0000")

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

    教學影音完整版在論壇:
    https://groups.google.com/forum/#!forum/scu_excel_vba2_86

    課程特色:
    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

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