2019-07-31

〔VBA〕FileSystemObject-資料夾不存在則新增--v023

【判斷資料夾是否存在,若資料夾不存在,則新增】


Dim fs as Object
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FolderExists(資料夾完整路徑) = False Then
    '資料夾不存在
    fs.CreateFolder (資料夾完整路徑)
End If
Set fs = Nothing

記得要釋放fs


章老師的電腦小講堂 https://www.facebook.com/ScenicSchool/
※※ 本區做為經常使用之程式碼複製區,提問請至小講堂唷 ※※
5 章老師的電腦小講堂: 7月 2019 【判斷資料夾是否存在,若資料夾不存在,則新增】 Dim fs as Object Set fs = CreateObject("Scripting.FileSystemObject") If fs.FolderExists( 資料夾完整路徑 ) = ...

〔VBA〕FileSystemObject-檢查資料夾是否存在--v022

【使用FileSystemObject函數判定路徑下資料夾是否存在】


Dim fs as Object
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FolderExists( 資料夾完整路徑 ) = True Then
    '資料夾存在
Else
    '資料夾不存在
End If
Set fs = Nothing
記得要釋放fs

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

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

〔EXCEL〕篩選-用顏色來篩選--h006


【用顏色來篩選】

其實就算再經常使用Excel,也容易因過度習慣,而忽略了就在眼前的功能。
不用懷疑,我就是。
這個功能是為了解決一個學員的問題,而想到「不能用顏色篩選嗎??
點進去看,耶~~~還真的有耶…

有時解法就在眼前,所以程式講的是邏輯…
邏輯講的是思考的順序和方法…
(慢慢要離題了)

篩選功能,就不用多說了…有機會如圖試試即可~

結果如下


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

關聯篇:〔EXCEL〕如何Highlight重覆資料--h005
5 章老師的電腦小講堂: 7月 2019 【用顏色來篩選】 其實就算再經常使用 Excel ,也容易因過度習慣,而忽略了就在眼前的功能。 不用懷疑,我就是。 這個功能是為了解決一個學員的問題,而想到「不能用顏色篩選嗎 ?? 」 點進去看,耶 ~~~ 還真的有耶… 有時解法就在眼前,所以程式...

2019-07-30

〔EXCEL〕如何Highlight重覆資料--h005


【設定格式化的條件,配合COUNTIF標示重覆的資料】

上次有利用COUNTIF來帶出重覆資料的筆數

這次加入格式化的條件,來些變型的應用…
之前其實有在小講堂FB分享過,現在再次拿出來複習一下唷~

以本範例說明,希望將有重覆資料的產品自動顯示底色(產品B有重覆)

  
第一步:串組判斷產品重覆的公式(C4欄為例-產品H)
=COUNTIF( $C:$C , $C4 )>1
口訣:計算C欄所有等於C4值的筆數,也就是計算所有產品為H的筆數
>1,則為,就是要設底色~~

第二步:開始「設定格式化的條件」
1.     點選「設定格式化的條件」功能。
2.     選擇「使用公式來決定要格式化哪些儲存格」。
3.     在公式欄輸入第一步的公式 「=COUNTIF( $C:$C , $C4 )>1」,記得前面要有=~
4.     設定「格式」,填滿底色。完成後確認。
5.     再次點選「設定格式化的條件」功能。
6.     將套用範圍擴及到整個C欄「=$C:$C」。

這樣就大功告成囉~~

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

5 章老師的電腦小講堂: 7月 2019 【設定格式化的條件,配合 COUNTIF 標示重覆的資料】 上次有利用 COUNTIF 來帶出重覆資料的筆數 〔 EXCEL 〕 COUNTIF 抓出重覆的資料 --h004 這次加入格式化的條件,來些變型的應用… 之前其實有在小講堂 FB 分享過,現...

2019-07-24

〔VBA〕DisplayAlerts-存檔時關閉系統提示--v021


【存檔時關閉系統提示訊息】

在活頁簿關閉或另存新檔時,系統會跳出提示或確認訊息
例如:







這樣經常造成程式中斷,必需由使用者按下確認後才繼續執行。
我們可以透過關閉系統提示訊息的方式,讓程式直接繼續執行。

【關閉系統提示】
Application.DisplayAlerts = False

關閉系統提示後:
若活頁簿有變更未進行儲存,則活頁簿不會存檔直接關閉。
若活頁簿另存新檔,例如csv,系統則直接以確認的方式進行存檔。
若另存新檔檔名重覆,系統則以直接覆蓋的方式進行存檔。

【開啟系統提示】
Application.DisplayAlerts = True

記得最後要把系統提示再打開唷~


Application.DisplayAlert=False
ActiveWorkbook.save
Application.DisplayAlert=True


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



5 章老師的電腦小講堂: 7月 2019 【存檔時關閉系統提示訊息】 在活頁簿關閉或另存新檔時,系統會跳出提示或確認訊息 例如: 這樣經常造成程式中斷,必需由...

2019-07-19

〔VBA〕WorksheetFunction-調用函數SumIfs--v020


【在VBA中如何使用Excel函數】

n   Application.WorksheetFunction.Excel函數(參數)
    調用不同函數,傳的參數及結構依照其函數設定方式。
    可使用的Excel函數請參閱下方「參考文件」

範例
[SumIfs]:在w1中,加總w2代碼等於w1 A欄的項目金額(C),且已出貨(D=Y)
w2中取得所有已出貨的蘋果總金額
w1.Range("A1") = Application.WorksheetFunction.SumIfs(w2.Range("C:C"), w2.Range("B:B"),Range("A1"),w2.Range("D:D"), "Y")



參考文件:

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



5 章老師的電腦小講堂: 7月 2019 【在 VBA 中如何使用 Excel 函數】 n    Application.WorksheetFunction. Excel 函數 ( 參數 ) ※     調用不同函數,傳的參數及結構依照其函數設定方式。 ※     可使用的 Excel 函數請參閱下方...

2019-07-18

〔VBA〕範例:選取檔案自動回寫並設定連結--v019


【為了大量的對應檔案並設定超連結而產生的工具】

/* 使用工具並非為了學技術,而是從工作生活中衍生而來的需求,為了改善,為了輕鬆,為了懶~~*/

這幾天連續分享了幾篇關於超連結的相關寫法…
不外乎也就這麼一個目的…
〈由來〉
因為我開始有些例行接單,整個程序中有非常多的執行步驟及產生相當多的文件…
光調用文件在檔案總管中一層層找檔開檔,就讓我覺得累人…
所以我直接把所有步驟程序寫成一張」程序書(SOP)
將重要資訊全回寫在程序書中以便快速取得資訊…
並且,重點來了,將各類文件檔案以超連結方式填入程序書,這樣只要一點,就可直接打開文件…

開始,我是把檔名寫下後,按右鍵點選超連結,找到檔案插入…
幾張下來我就懶了…
決定寫一個小功能…
〈需求〉
直接開啟選取檔案視窗,選擇檔案後將(1).檔名回寫到儲存格,並(2).設定超連結





Private Sub cmdOpenFolder_Click()
    With Application.FileDialog(msoFileDialogFilePicker)    '開啟選取檔案視窗
        .InitialFileName = ActiveWorkbook.Path & "\*.*"    '預設為目前檔案所在位置
        .AllowMultiSelect = False                          '只能選取單一檔案
        If .Show <> 0 Then                                      '如果有選到檔案
            Dim sFileName As String
            sFileName = Dir(.SelectedItems(1))              '取得檔名
            'ActiveCell = ""            '儲存格的值帶回符號■
            ActiveCell = sFileName       '儲存格的值帶回檔案名稱
            ActiveSheet.Hyperlinks.Add Anchor:=ActiveCell, Address:=.SelectedItems(1)   '加入超連結
        End If
    End With
End Sub

後記:範例檔可玩玩,還有些簡單的格式化設定…



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



5 章老師的電腦小講堂: 7月 2019 【為了大量的對應檔案並設定超連結而產生的工具】 /* 使用工具並非為了學技術,而是從工作生活中衍生而來的需求,為了改善,為了輕鬆,為了懶 ~~*/ 這幾天連續分享了幾篇關於超連結的相關寫法… 不外乎也就這麼一個目的… 〈由來〉 因為我開始有些例行接...

2019-07-17

〔VBA〕Hyperlinks-清除的方式--v018


【移除工作表內的超連結】

n   WorkSheet. Hyperlinks.Delete
n   Range.Hyperlinks.Delete
    這方式除了會將超連結刪除之外,也會同時將格式設定都刪除

範例
ActiveSheet.Hyperlink.Delete   '將目前工作表內所有超連結刪除
Range("A1").Hyperlink.Delete   'A1超連結及格式都清除


n   Range. ClearHyperlinks
    這方式僅單純清除超連結,原範圍的格式設定不受影響
    但若有合併儲存格時,Range範圍指定必需包含合併儲存格的欄位範圍

範例
Range("A1:B1"). ClearHyperlinks    'A1:B1為合併儲存格,請務必完整指定範圍


參考文件:

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



5 章老師的電腦小講堂: 7月 2019 【移除工作表內的超連結】 n    WorkSheet. Hyperlinks.Delete n    Range.Hyperlinks.Delete ※     這方式除了會將 超連結刪除 之外,也會同時將 格式設定都刪除 範例 : Activ...

2019-07-16

〔VBA〕ExportAsFixedFormat -工作表另存成PDF--v017


【工作表另存成PDF(發佈)】


ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= "完整路徑.pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:= False


參考文件:


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




5 章老師的電腦小講堂: 7月 2019 【工作表另存成PDF(發佈)】 ActiveWorkbook. ExportAsFixedFormat Type:= xlTypePDF , Filename:= " 完整路徑 .pdf", _ Quality:=xlQualityStan...

〔VBA〕SaveAs-活頁簿另存新檔(xlsx,xlsm,csv)--v016


【活頁簿另存新檔】


ActiveWorkbook.SaveAs Filename:=存檔完整路徑含檔名, FileFormat:=檔案格式

範例


'存成xlsx
ActiveWorkbook.SaveAs Filename:="a.xlsx", FileFormat:=xlOpenXMLWorkbook

'存成xlsm
ActiveWorkbook.SaveAs Filename:="a.xlsm", FileFormat:= xlOpenXMLWorkbookMacroEnabled

'存成csv
ActiveWorkbook.SaveAs Filename:="a.csv", FileFormat:= xlCSV

'其它檔案格式代碼,請參閱以下文件連結


參考文件:



章老師的電腦小講堂 https://www.facebook.com/ScenicSchool/

※※ 本區做為經常使用之程式碼複製區,提問請至小講堂唷 ※※







5 章老師的電腦小講堂: 7月 2019 【活頁簿另存新檔】 ActiveWorkbook.SaveAs Filename:= 存檔完整路徑含檔名 , FileFormat:= 檔案格式 範例 : ' 存成 xlsx ActiveWorkbook.SaveAs ...

〔VBA〕Hyperlinks-儲存格加入超連結--v015


【在指定的儲存格上加上超連結】

ActiveSheet.Hyperlinks.Add Anchor:=Range("指定的儲存格"), Address:=超連結路徑

範例
strPath="O:\公開資料夾\管理部門\測試\ScenicSchool\超連結檔案.xlsx"
ActiveSheet.Hyperlinks.Add Anchor:=Range("A1"), Address:=strPath


參考文件:
https://docs.microsoft.com/zh-tw/office/vba/api/excel.hyperlinks.add


章老師的電腦小講堂 https://www.facebook.com/ScenicSchool/

※※ 本區做為經常使用之程式碼複製區,提問請至小講堂唷 ※※



5 章老師的電腦小講堂: 7月 2019 【在指定的儲存格上加上超連結】 ActiveSheet . Hyperlinks.Add Anchor:= Range("指定的儲存格") , Address:= 超連結路徑 範例 : strPath="O:\ 公開資料夾 \...

2019-07-09

〔EXCEL〕COUNTIF抓出重覆的資料--h004


【利用COUNTIF抓出重覆的資料】

**倘若你有大量的客戶資料,如何從中比對找出重覆的筆數呢?**
→我們可利用「計算出現筆數」的方式,來快速知道是否有重覆資料及出現的次數~
→只要筆數>1,就代表該筆資料有重覆,且可知道重覆的筆數~

COUNTIF – 計算符合指定條件的資料筆數

口訣:計算的範圍,合計的條件
函數結構:
=COUNTIF( 計算的範圍 , 合計的條件 )
計算的範圍:可以是一欄 A:A,可以是一列 1:1,可以是一個區域 A1:C10
合計的條件:>,>=,=,<=,< / 單一條件
多條件請使用COUNTIFS


1. 計算A欄所有>100的筆數
=COUNTIF( $A:$A , >100)

2. 計算A欄所有=100的筆數
=COUNTIF( $A:$A , “=100)
=COUNTIF( $A:$A , 100)

3. 計算A欄所有等於「小明」的筆數
=COUNTIF( $A:$A , 小明)

4. 計算A欄所有等於A1的筆數
=COUNTIF( $A:$A , A1)


延伸變型範例:
a.     配合IF的判斷,讓重覆的資料顯示筆數,未重覆的資料不顯示
=IF( COUNTIF( $A:$A , A1)>1 , COUNTIF( $A:$A , A1) , ““ )
b.     配合「格式化的條件」讓重覆的資料顯示不同的底色
(本筆由學員自行練習囉~待另行開課再放上來唷)


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

5 章老師的電腦小講堂: 7月 2019 【利用 COUNTIF 抓出重覆的資料】 ** 倘若你有大量的客戶資料,如何從中比對找出重覆的筆數呢 ?** →我們可利用「計算出現筆數」的方式,來快速知道是否有重覆資料及出現的次數 ~ →只要筆數 >1 ,就代表該筆資料有重覆,且可知道重覆的筆數 ~ ...
小講堂經過多次搬移,舊文章連結及內容較難整理~
大家可以新文章為主~
每篇文章後有代碼,任何文章問題可至FB小講堂用代碼提問唷~