2017-03-01 154 views
1

我想基於VBA中的列標題動態選擇列。這是我使用的代碼,Excel VBA - 使用列標題動態選擇列

Sub trial() 

Dim colm As Long 
Dim nwb As Workbook, wb As Workbook 
Dim nwk As Worksheet, wk As Worksheet, wk1 As Worksheet 

co1m = WorksheetFunction.Match("Header", Sheets("Sheet1").Rows(1), 0) 

Columns(colm).Select 

End Sub 

當我嘗試調試它,它顯示的5科爾姆,並在同一時間對下一行的列值(科爾姆)。選擇,它顯示0在colm的地方。請幫助我解決我在這裏遇到的問題。在此先感謝

回答

1

你有一個錯字!您有co1mcolm

使用Option Explicit會產生編譯錯誤,說明co1m未被聲明! ;)

Option Explicit 

Sub trial() 

Dim colm As Long 
Dim nwb As Workbook, wb As Workbook 
Dim nwk As Worksheet, wk As Worksheet, wk1 As Worksheet 

colm = WorksheetFunction.Match("Header", Sheets("Sheet1").Rows(1), 0) 

Columns(colm).Select 

End Sub 
+0

Thanks @ R3uK。我不確定它在代碼中的錯誤,因爲我在代碼中查找它不是拼寫錯誤,但是當我添加此Option Explicit時,它剛開始工作。這個Option Explicit背後有什麼理由嗎?再次感謝好友! – Sid29

+1

@VBA_Begineer:'Option Explicit'只是一個最佳實踐(你可以設置VBE默認使用它,檢查選項)以避免這種錯誤,它會強制你聲明你的所有變量代碼,所以它會警告你,當你有一個錯字! ;)請接受答案,因爲這解決了你的問題。 – R3uK

+0

@ R3_uK感謝隊友。我被Stack Overflow等待了10分鐘來接受你的回答。對不起。再次感謝 !! – Sid29