2017-03-01 148 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