2019-08-22

〔EXCEL〕自定格式-數字轉換中文大寫(一十一/十一)--h009

【如何將數字轉換成中文大寫(含隱藏設定)】


((先提示,今天的重點在最後一段))


前一篇分享了用小計功能來做分類縮合選單…
上傳了"經書"的範例…(哈~只不過是我自己剛好在整理使用)…
其中,各章節當然是以中文「第一章」「第二章」…來顯示是最恰當的…

但我不斷強調我是一個非常懶的人…輸入3個中文字,不如輸入一個阿拉伯數字…
因此最簡單的方式,就是將章節的欄位格式,修改為「特殊」類型中的中文數字選項…

























其中有2個選項可選擇(如上圖)~~~
選擇確定後…再打開儲存格數值設定,選取自訂,會看到真實的設定碼
(依據Excel版本的不同,顯示會有些差異)
[DBNum1][$-zh-TW]General
[DBNUM1][$-404]G/通用格式

請在前後加上"第"xxx"章"…這樣顯示時前後字都不需登打了…
[DBNum1]"第"[$-zh-TW]General"章"
[DBNUM1]"第"[$-404]G/通用格式"章"

好的…以上其實各位簡單試試就可以得到結果…
但…還沒有到我今天要講的隱藏設定…(((鵝~~大驚)))

依目前Excel格式設定選單中,選取的中文數字
若輸入11,顯示會轉換成「一十一」或「壹拾壹」
>>>>>有沒有覺得很不習慣,如果可以把前的面「一/壹」去掉,是不是比較接近想要顯示的方式??

解決方法:
請將404代碼,修改為411即可~~
[DBNum1]"第"[$-ja-JP]General"章"
[DBNUM1]"第"[$-411]G/通用格式"章"

完美~~試試吧~


<<參考資料>>
代碼 DBNUM1 DBNUM2 DBNUM3
404 一百二十三 壹佰貳拾參 1百2十3
411 百二十三 壱百弐拾參 百2十3
412 一百二十三 壹百貳拾參   百2十3
804 一百二十三 壹佰貳拾叄  1百2十3
10000 一百二十三 壹佰貳拾叄 1百2十3
10404 一百二十三 壹佰貳拾參 1百2十3
10411 百二十三 壱百弐拾參 百2十3
10412 一百二十三 壹百貳拾參 百2十3
10804 一百二十三 壹佰貳拾叄 1百2十3
20000 一百二十三 壹佰貳拾叄 1百2十3
20404 一百二十三 壹佰貳拾參 1百2十3
20411 百二十三 壱百弐拾參 百2十3
20412 一百二十三 壹百貳拾參 百2十3
20804 一百二十三 壹佰貳拾叄 1百2十3
11000000 ፩፪፫ ፩፪፫ ፩፪፫
27000000 일백이십삼 일백이십삼 일백이십삼








相關課程:


章老師的電腦小講堂 https://www.facebook.com/ScenicSchool/
※※ 本區做為經常使用之程式碼複製區,提問請至小講堂唷 ※※

5 章老師的電腦小講堂: 8月 2019 【如何將數字轉換成中文大寫(含隱藏設定)】 ((先提示,今天的重點在最後一段)) 前一篇分享了用小計功能來做分類縮合選單… 上傳了"經書"的範例…(哈~只不過是我自己剛好在整理使用)… 其中,各章節當然是以中文「第一章」「第二章」…來顯示是最恰...

2019-08-21

〔VBA〕FileDialog-開啟視窗選取檔案--v033

【利用FileDialog產生檔案選取視窗】


With Application.FileDialog(msoFileDialogFilePicker) '開啟選取檔案視窗 
      .InitialFileName = ActiveWorkbook.Path & "\*.*" '預設為目前檔案所在位置 
      .AllowMultiSelect = False '只能選取單一檔案 
      If .Show <> 0 Then '如果有選到檔案 
           Dim sFileName As String 
           sFileName = Dir(.SelectedItems(1)) '取得檔名 
      End If 
End With


相關課程:


章老師的電腦小講堂 https://www.facebook.com/ScenicSchool/
※※ 本區做為經常使用之程式碼複製區,提問請至小講堂唷 ※※
5 章老師的電腦小講堂: 8月 2019 【利用FileDialog產生檔案選取視窗】 With Application.FileDialog(msoFileDialogFilePicker) '開啟選取檔案視窗         .InitialFileName = ActiveWorkbook....

2019-08-20

〔EXCEL〕資料小計-資料分類好幫手--h008

【運用小計功能來分類資料】


不知有沒有學員使用Excel來紀錄分類的資料?
我個人是蠻常使用的,不管是工作上或私人筆記。
例如程式版本清表、資料庫欄位總表…或是網站連結、經書筆記等等…














在整理資料時,希望能以「分類」方式來彙整…
並且有展開收合的功能…
這樣在瀏覽資料時,不但能快速一覽全貌,並且可以點選方式直接檢視要瀏覽的資料內容…
非常方便~~~

運用Excel資料小計的功能,就能達到這個效果唷…
當然,小計功能主要是為了拿來做些分類計算(例如筆數、總計等等)…
但運用隨人發揮,利用其收合分類的功能,立馬效率提昇~







在Excel「資料」選項中,有「群組」及「小計」功能…
我個人偏愛使用小計的功能,主要原因在於…

  • 小計的收合點選按鈕在上方,而群組在下方(各位有興趣可以自己試試)…
  • 可方便迅速加上統計的功能(例如圖二的數字為subtotal自動計算下方有幾筆資料)


產生小計格式的方式,在這裡我不詳述步驟…
因為最簡單的方式,就是有幾筆資料後,選取按小計…先讓結構產生出來後,再依自己使用方式調整及編排即可…
直接…試了…就知道了…

唯一注意的是…小計最多只有3層的結構,同時只有列(直向)的分類收合
群組則沒有限制層數(沒試過極限),可針對欄及列來進行分類

對於沒有耐心的我…分類3層其實已經夠了,太多層反而眼花撩亂,不如分Sheet來管理…
點3層也夠了…再多操作上就不輕鬆了…

大家可以參考應用看看囉~


範例檔下載

相關課程:無


章老師的電腦小講堂 https://www.facebook.com/ScenicSchool/
※※ 本區做為經常使用之程式碼複製區,提問請至小講堂唷 ※※

5 章老師的電腦小講堂: 8月 2019 【運用小計功能來分類資料】 不知有沒有學員使用Excel來 紀錄分類 的資料? 我個人是蠻常使用的,不管是工作上或私人筆記。 例如程式版本清表、資料庫欄位總表…或是網站連結、經書筆記等等… 在整理資料時,希望能以「分類」方式來彙...

2019-08-19

〔VBA〕Desktop-取得桌面路徑--v032

【取得目前使用者桌面路徑】


MsgBox "桌面路徑:" & CreateObject("WScript.Shell").SpecialFolders("Desktop")

相關課程:無。


章老師的電腦小講堂 https://www.facebook.com/ScenicSchool/
※※ 本區做為經常使用之程式碼複製區,提問請至小講堂唷 ※※

5 章老師的電腦小講堂: 8月 2019 【取得目前使用者桌面路徑】 MsgBox "桌面路徑:" &  CreateObject("WScript.Shell").SpecialFolders("Desktop") 相關課程:無。 ...

2019-08-14

〔VBA〕Close-關閉活頁簿--v031

【關閉指定活頁簿】

ActiveWorkbook.Close
Workbooks("目前開啟的檔名.xlsx").Close


若要避免跳出存檔提示視窗,可暫時將系統提示訊息關閉(檔案有被修改將不會儲存)
Application.DisplayAlerts = False
Workbooks("目前開啟的檔名.xlsx").Close
Application.DisplayAlerts = True


參考資料:
https://docs.microsoft.com/zh-tw/office/vba/api/excel.workbooks.close

相關課程:
〔VBA〕Open-開啟活頁簿--v030
〔VBA〕DisplayAlerts-存檔時關閉系統提示--v021


章老師的電腦小講堂 https://www.facebook.com/ScenicSchool/
※※ 本區做為經常使用之程式碼複製區,提問請至小講堂唷 ※※

5 章老師的電腦小講堂: 8月 2019 【關閉指定活頁簿】 ActiveWorkbook.Close Workbooks(" 目前開啟的檔名.xlsx ").Close 若要避免跳出存檔提示視窗,可暫時將系統提示訊息關閉( 檔案有被修改將不會儲存 ) Application.Displ...

〔VBA〕Open-開啟活頁簿--v030

【開啟指定活頁簿】

Workbooks.Open Filename:="檔案完整路徑.xlsx", UpdateLinks:=0

  • UpdtaeLinks:=0 代表檔案開啟時不會更新外部參照
  • ReadOnly:=true 代表以唯讀檔案開啟,預設為False


參考資料:
https://docs.microsoft.com/zh-tw/office/vba/api/excel.workbooks.open

相關課程:
〔VBA〕Close-關閉活頁簿--v031


章老師的電腦小講堂 https://www.facebook.com/ScenicSchool/
※※ 本區做為經常使用之程式碼複製區,提問請至小講堂唷 ※※

5 章老師的電腦小講堂: 8月 2019 【開啟指定活頁簿】 Workbooks.Open Filename:=" 檔案完整路徑.xlsx ", UpdateLinks:=0 UpdtaeLinks:=0 代表檔案開啟時不會更新外部參照 ReadOnly:=true 代表以唯讀檔案開啟,預...

2019-08-13

〔VBA〕範例:進階版多選動態螢光棒(列變色)--v029

【點選儲存格,則該列底色反黃變色-多選版】


繼先前針對單選儲存格,底色動態變色的範例應用後
(〔VBA〕範例:動態螢光棒(列變色)的作法[格式化的條件]--v010)

我們再進一步針對多選列,來進行底色變色的"實驗吧"















作法如同單選變色的方式,只是增加了選取區域(Areas)的判斷
針對每個選取列,來增設「設定格式化的條件」

語法:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error Resume Next
    Range("C4:W33").FormatConditions.Delete       '將C4:W33內格式化條件的設定刪除
    Dim tRange As Range, tRow As Range
    For Each tRange In Target.Areas
        For Each tRow In tRange.Rows
            '只針對範圍設定在C4~W33
            If tRow.Row > 3 And tRow.Row < 34 Then
                '設定該區的格式化條件
                With tRow.EntireRow.Range("C1:W1").FormatConditions
                    .Add xlExpression, , "TRUE"
                    .Item(1).Interior.ColorIndex = Int(36)
                    .Item(1).StopIfTrue = False
                End With
            End If
        Next
    Next
    Set tRange = Nothing: Set tRow = Nothing
End Sub

補充:
With tRow.EntireRow.Range("C1:C1").FormatConditions
        .Add xlExpression, , "TRUE"
        With .Item(1).Font                             '字型
            .Color = -11489280
            .Bold = True
            .Italic = False
        End With
        With .Item(1).Borders(xlBottom)      '下框線
            .LineStyle = xlContinuous
            .Color = -16776961
            .Weight = xlThin
        End With
        With .Item(1).Interior                         '填滿
            .PatternColorIndex = xlAutomatic
            .Color = 65535
        End With
        .Item(1).StopIfTrue = False
End With


相關課程:
〔VBA〕範例:動態螢光棒(列變色)的作法[格式化的條件]--v010

章老師的電腦小講堂 https://www.facebook.com/ScenicSchool/
※※ 本區做為經常使用之程式碼複製區,提問請至小講堂唷 ※※
5 章老師的電腦小講堂: 8月 2019 【點選儲存格,則該列底色反黃變色-多選版】 繼先前針對單選儲存格,底色動態變色的範例應用後 ( 〔VBA〕範例:動態螢光棒(列變色)的作法[格式化的條件]--v010 ) 我們再進一步針對多選列,來進行底色變色的"實驗吧" ...

〔VBA〕Unload Form-關閉表單--v028

【關閉自定義表單】


Unload Form

or

Unload Me

'在表單程式碼程序內Unload Me則卸載執行物件

章老師的電腦小講堂 https://www.facebook.com/ScenicSchool/
※※ 本區做為經常使用之程式碼複製區,提問請至小講堂唷 ※※
5 章老師的電腦小講堂: 8月 2019 【關閉自定義表單】 Unload Form or Unload Me '在表單程式碼程序內Unload Me則 卸載執行物件 章老師的電腦小講堂  https://www.facebook.com/ScenicSchool/ ※※ 本區做為經常...

〔VBA〕Form.Hide-隱藏表單--v027

【隱藏自定義表單】


Form.Hide

'表單隱藏,且為強制回應
'表單上元件內容不會因此清空或卸載


章老師的電腦小講堂 https://www.facebook.com/ScenicSchool/
※※ 本區做為經常使用之程式碼複製區,提問請至小講堂唷 ※※
5 章老師的電腦小講堂: 8月 2019 【隱藏自定義表單】 Form.Hide '表單隱藏,且為強制回應 '表單上元件內容不會因此清空或卸載 章老師的電腦小講堂  https://www.facebook.com/ScenicSchool/ ※※ 本區做為經常使用之程式碼複製區,...

2019-08-06

〔EXCEL〕範例-將姓名中間字改成○--h007

【如何將姓名中間字改成○】


今天一位學員問我,怎麼快速將大量姓名中間的字換成○?
其實解決問題的方法很多,越白話越簡單越好記…




以下列舉2個方式來解決這個問題:<可使用第2個方式,但不能不熟悉第1個方式,哈哈>

1. 用左邊第1個字 + ○ + 右邊第1個字
    (這是最直覺最白話的方式)

= LEFT(B3,1) & "○" & RIGHT(B3,1)    '這叫直譯式寫法,哈哈!

但若名字有4個(甚至更多)或只有2個字呢?
可以加入長度的判斷來決定

= LEFT(B3,1) & IF(LEN(B3)>3,"○",LEFT("○○○○",LEN(B3)-2)) & IF(LEN(B3)>2,RIGHT(B3,1),"")

其中
.IF(LEN(B3)>3,"○",LEFT("○○○○",LEN(B3)-2))
→若姓名長度>3(四個字以上),就換長度-2個○(目前最多是6個字)
.IF(LEN(B3)>2,RIGHT(B3,1),"")
→若姓名長度>2,就放入姓名最後一個字(也就是說2個字的,就不放最後一個字)


2. 用置換的方式,將中間的字換成○
利用REPLACE函數,將指定位置的字元替換成○

= REPLACE(原字串 , 從第幾碼開始替換 , 替換幾個字元 , 替換的文字 )
= REPLACE(B3,2,1,"○")

同樣的,針對姓名2個字或4個字以上的增加判斷處理
= REPLACE( B3 , 2 , IF(LEN(B3)>3,LEN(B3)-2,1) , IF(LEN(B3)<3,"○",LEFT("○○○○",LEN(B3)-2)) )
其中
.IF(LEN(B3)>3,LEN(B3)-2,1)
→若姓名長度>3,則替換掉長度-2的字元(4個字替換掉中間2個字)
.IF(LEN(B3)<3,"○",LEFT("○○○○",LEN(B3)-2))
→若長度<3,僅替換1個○,否則替換長度-2個○(4個字中間替換成2個○)


章老師的電腦小講堂 https://www.facebook.com/ScenicSchool/
※※ 本區做為經常使用之程式碼複製區,提問請至小講堂唷 ※※
5 章老師的電腦小講堂: 8月 2019 【如何將姓名中間字改成○】 今天一位學員問我,怎麼快速將大量姓名中間的字換成○? 其實解決問題的方法很多,越白話越簡單越好記… 以下列舉2個方式來解決這個問題:<可使用第2個方式,但不能不熟悉第1個方式,哈哈> 1. 用左邊第1個字 + ○ ...

2019-08-02

〔VBA〕FileSystemObject-檢查檔案是否存在 --v026

【使用FileSystemObject判定路徑下檔案是否存在】

Dim fs as Object
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.fileexists( 完整檔案路徑含副檔名 ) = True Then
    '檔案存在
Else
    '檔案不存在
End If
Set fs = Nothing

相同功能:
〔VBA〕Dir-檢查檔案是否存在 --v001
〔VBA〕FileSystemObject-檢查檔案是否存在 --v026


章老師的電腦小講堂 https://www.facebook.com/ScenicSchool/
※※ 本區做為經常使用之程式碼複製區,提問請至小講堂唷 ※※
5 章老師的電腦小講堂: 8月 2019 【使用FileSystemObject判定路徑下檔案是否存在】 Dim fs as Object Set fs = CreateObject("Scripting.FileSystemObject") If fs.fileexists(  完整檔案路徑...

〔VBA〕範例:Outlook批次寄發Email(2/2)--v025

【如何替Email掛上附件】

前一篇我們已知道如何產生Email郵件
〔VBA〕範例:Outlook批次寄發Email(1/2)--v024

若要自動掛上附件,要怎麼處理呢?

'替Email掛上附件===============================================
Dim objOL As Object, objMail As Object
Set objOL = CreateObject("Outlook.Application")   '定義一個outlook物件
Set objMail = objOL.CreateItem(olMailItem)           '定義一個Mail項目

Dim myAttachments as Object
myAttachments = objMail.Attachments
myAttachments.Add 附件的完整路徑
'↑這樣該附件就會被加入這份Mail中囉~
'若要加多份,只要重覆myAttachments.Add即可

Set myAttachments = Nothing
Set objMail = Nothing
Set objOL = Nothing


完整課程:
〔VBA〕範例:Outlook批次寄發Email(1/2)--v024
〔VBA〕範例:Outlook批次寄發Email(2/2)--v025

章老師的電腦小講堂 https://www.facebook.com/ScenicSchool/
※※ 本區做為經常使用之程式碼複製區,提問請至小講堂唷 ※※
5 章老師的電腦小講堂: 8月 2019 【如何替Email掛上附件】 前一篇我們已知道如何產生Email郵件 〔VBA〕範例:Outlook批次寄發Email(1/2)--v024 若要自動掛上附件,要怎麼處理呢? '替Email掛上附件==============================...

2019-08-01

〔VBA〕範例:Outlook批次寄發Email(1/2)--v024

【利用預設郵件批次產生Email寄發】


這個功能在工作領域的應用上,可以發揮非常大的作用…
有需要的學員,不妨試一試…

舉例來說:
採購人員每天發單給供應商,可以統整張訂購表
可以利用Excel,從清冊直接轉成一張張的採購單
並另存成PDF檔,自動掛到Email附件中
包含內文的抬頭,內容都能自動生成

細節不多說了~
本篇主要重點為產生Email的那段語法

'寄送Email===============================================
Dim objOL As Object, objMail As Object
Set objOL = CreateObject("Outlook.Application")   '定義一個outlook物件
Set objMail = objOL.CreateItem(olMailItem)           '定義一個Mail項目

'設定Mail項目的相關屬性
With objMail
    .To = 收件者
    .Cc = 副本
    .Bcc = 密件副本
    .Subject = 主旨
    .Body = 信件內容
    .Display        '顯示郵件
End With

↓***以下這段,我沒試過。因為不建議直接送出。重要文件還是看過再送~
'SendKeys "%s", True ' 自動按ALT+S以送出郵件

Set objMail = Nothing
Set objOL = Nothing





















完整課程:
〔VBA〕範例:Outlook批次寄發Email(1/2)--v024
〔VBA〕範例:Outlook批次寄發Email(2/2)--v025

章老師的電腦小講堂 https://www.facebook.com/ScenicSchool/
※※ 本區做為經常使用之程式碼複製區,提問請至小講堂唷 ※※
5 章老師的電腦小講堂: 8月 2019 【利用預設郵件批次產生Email寄發】 這個功能在工作領域的應用上,可以發揮非常大的作用… 有需要的學員,不妨試一試… 舉例來說: 採購人員每天發單給供應商,可以統整張訂購表 可以利用Excel,從清冊直接轉成一張張的採購單 並另存成PDF檔,自動掛到Email...
小講堂經過多次搬移,舊文章連結及內容較難整理~
大家可以新文章為主~
每篇文章後有代碼,任何文章問題可至FB小講堂用代碼提問唷~