Pages

2020-10-28

〔VBA〕Columns-隱藏或顯示一整欄--v049

  

【如何隱藏或顯示一整欄】


Columns("A:B").EntireColumn.Hidden = True/False

範例應用:
設置一個checkbox,勾選時顯示該欄,不勾選則隱藏
Private Sub chkShow01_Change()
    Columns("J:L").EntireColumn.Hidden = Not (chkShow01.Value)
End Sub


相關課程:


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

2020-10-27

〔EXCEL〕樣式-更改預設超連結的格式--h017

 

【如何一次更改預設的超連結樣式】


有沒有人跟我一樣覺得Excel預設超連結藍字底線很醜>"<
尤其是整個表格字型有調整,色系統規範時,加一個超連結會瞬間覺得無言~

其實你可以自行設定超連結樣式的…
做法很簡單~~
1. 先在表內插入一個超連結,記得要先有超連結,因為表內沒有時,第2步打開來會看到不超連結樣式!
2.常用>儲存格樣式>在「超連結」上按右鍵>修改


改成自己需要的格式即大功完成了~


相關課程:


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

2020-10-26

〔VBA〕FollowHyperlink-範例:點選2下連結外部網站--v048

  

【】


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    '確認Double Click的儲存格範圍要求
    '連結到外部股票資訊網站並開啟指定資訊

    If Target.Row > 8 And Target.Column = 8 And Target.Text <> "" Then
        ThisWorkbook.FollowHyperlink "https://goodinfo.tw/StockInfo/StockDetail.asp?STOCK_ID=" & Target.Text
        Cancel = True
    End If
End Sub




相關課程:


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

〔VBA〕AutoFilter-自動篩選指定值(部份符合)--v047

  

【自動篩選指定值-部份符合】

'若工作表有自動篩選,先行移除自動篩選設定
'依據範圍加入自動篩選

    If Not ActiveSheet.AutoFilter Is Nothing Then ActiveSheet.AutoFilterMode = False
    ActiveSheet.Range("$J$10:$R$2000").AutoFilter Field:=1, Criteria1:="=*" & Range("R7") & "*", Operator:=xlAnd

#範圍包含標題列
#條件前後加*為模糊查詢




相關課程:


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

〔VBA〕AutoFilter-自動篩選指定值(完全符合)--v046

 

【自動篩選指定值-完全符合】

'若工作表有自動篩選,先行移除自動篩選設定
'依據範圍加入自動篩選

#注意範圍【包含篩選的標題列】

If Not ActiveSheet.AutoFilter Is Nothing Then ActiveSheet.AutoFilterMode = False
ActiveSheet.Range("$W$10(含標題列):$W$10000").AutoFilter Field:=1, Criteria1:="ABC"






相關課程:


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

〔VBA〕AutoFilter-如何篩選多個值--v045

 

【篩選多個值】

'若工作表有自動篩選,先行移除自動篩選設定
'先將篩選條件值塞入arrCT()陣列
'加入自動篩選條件

    If Not ActiveSheet.AutoFilter Is Nothing Then ActiveSheet.AutoFilterMode = False
    Dim arrCT() As String
    ActiveSheet.Range("$G$10:$G$10000").AutoFilter Field:=1, Criteria1:=arrCT, Operator:=xlFilterValues





相關課程:


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

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

〔VBA〕AutoFilter-篩選儲存格為空白的項目--v044

 

【篩選儲存格為空白的項目】

'若工作表有自動篩選,先行移除自動篩選設定
'依據範圍加入自動篩選儲存格為空白的項目

    If Not ActiveSheet.AutoFilter Is Nothing Then ActiveSheet.AutoFilterMode = False
    ActiveSheet.Range("$W$10:$W$10000").AutoFilter Field:=1, Criteria1:="="



相關課程:


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

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

〔VBA〕AutoFilter-依據顏色進行篩選--v043

 

【依據儲存格的顏色進行篩選】

'若工作表有自動篩選,先行移除自動篩選設定
'依據範圍加入自動篩選顏色為黃色

    If Not ActiveSheet.AutoFilter Is Nothing Then ActiveSheet.AutoFilterMode = False
    ActiveSheet.Range("$W$10:$W$10000").AutoFilter Field:=1, Criteria1:=RGB(255, 255, 0), Operator:=xlFilterCellColor





相關課程:


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

2020-03-13

〔EXCEL〕SUMPRODUCT/COUNTIF-計算不重覆個數--h016

【如何計算一個範圍內不重覆值的個數】


有些公式"講"起來容易,"理解"起來難~
所以直接留下組合好的公式去套用好了…

若要取A1:A100間不重覆的值
=SUMPRODUCT(1/COUNTIF(統計範圍,統計範圍))
=SUMPRODUCT(1/COUNTIF(A1:A100,A1:A100))

※ 此範圍內必需連續有值的狀態,空白會造成錯誤

﹤太長的說明連我都會滑呀滑的過呀﹥


相關課程:


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

〔VBA〕Protect/Unprotect-保護與解鎖--v042

【將工作表進行保護及解鎖】


'單純鎖定工作表(不更改預設鎖定條件)
ActiveSheet.Protect
'對應解鎖
ActiveSheet.Unprotect

'鎖定工作表並加上密碼
ActiveSheet.Protect Password:="****"
'對應解鎖
ActiveSheet.Unprotect Password:="****"



相關課程:


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

〔VBA〕AutoFilter-取得自動篩選狀態--v041

【如何取得自動篩選狀態】


為何要判斷自動篩選狀態?
因為在無自動篩選時,去設定清除篩選選項會出錯呀~

If ActiveSheet.AutoFilter Is Nothing Then
    '無自動篩選
    '加入自動篩選(篩選王小明)
    ActiveSheet.Range("A1:A100").AutoFilter Field:=1, Criteria1:="王小明"
Else
    '有自動篩選
    '清除篩選選項
    ActiveSheet.AutoFilterMode=False
End If

範例語法2:
'若有自動篩選,則移除自動篩選(做為加入自動篩選前的確認動作)
If Not ActiveSheet.AutoFilter Is Nothing Then ActiveSheet.AutoFilterMode = False



更正:
ActiveSheet.ShowAllData
測試:ActiveSheet.AutoFilter Is Nothing無法判別是否有在篩選狀態,若在無篩選狀態,ShowAllData會產生Error

相關課程:


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