如何使用Excel宏從Excel列名中獲取列號?列名中的Excel列號
回答
我想你想要這個?
列名列數
Sub Sample()
ColName = "C"
Debug.Print Range(ColName & 1).Column
End Sub
編輯:也包括你想要什麼
列號列名
Sub Sample()
ColNo = 3
Debug.Print Split(Cells(, ColNo).Address, "$")(1)
End Sub
遵循反向UP
一樣,如果我在最高層的薪水字段允許在小區C(1,1)現在,如果我改變文件和工資柱轉移到其他地方說,F(1說, 1)那麼我將不得不修改代碼,所以我想要代碼來檢查工資並找到列號,然後根據該列號執行其餘的操作。
在這種情況下,我會建議使用.FIND
見下
Option Explicit
Sub Sample()
Dim strSearch As String
Dim aCell As Range
strSearch = "Salary"
Set aCell = Sheet1.Rows(1).Find(What:=strSearch, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Not aCell Is Nothing Then
MsgBox "Value Found in Cell " & aCell.Address & _
" and the Cell Column Number is " & aCell.Column
End If
End Sub
快照
+1像往常一樣的細節:) – 2012-04-11 16:24:44
像如果我有工資領域在最頂部讓我們說在單元格C(1,1)現在,如果我改變文件和移動薪金列到其他地方說F(1,1)然後我將不得不修改代碼,所以我想要代碼來檢查薪水和找到列號,然後根據該列號做其餘的操作。 – 2012-04-12 05:53:55
@Paritosh Ahuja:我已更新該帖子。 – 2012-04-12 10:43:12
當你正在尋找一個VBA解決方案,這這個例子是我在谷歌尋找公式解決方案時的首要結果,所以我會添加此爲任何人來到這裏像我這樣的人:
Excel公式返回號碼從一個列字母(從@A。上述Klomp的的評論),在單元格A1握着你的列字母(S):
=列(間接(A1 & 「1」))
由於間接作用是揮發性的,它重新計算時任何單元格都會更改,所以如果您有很多這樣的單元格,它可能會減慢您的工作簿。考慮另一種解決方案,例如'code'函數,它給出了ASCII字符的編號,以'A'開始,編號爲65.請注意,要執行此操作,您需要檢查列名稱中有多少個數字,並且根據「A」,「BB」或「CCC」更改結果。
Excel公式從多個返回列字母(從這個前一個問題How to convert a column number (eg. 127) into an excel column (eg. AA),通過@Ian回答),其中A1握着你的列號:
=代用品(地址(1,A1 ,4),「1」,「」)
請注意,無論列名中有多少個字母,這兩種方法都可以工作。
希望這可以幫助別人。
@ExcelHero你錯過了上述觀點 - 在我的解決方案中,單元格A1 *包含* Letter/Number列。您的解決方案硬編碼解決方案將「A」轉換爲1,或1轉換爲「A」。我的版本簡單地展示瞭如何動態地做到這一點(儘管如果你想硬編碼,是的,這也是可能的)。請進去實際嘗試這些,因爲我已經證實他們的工作。 – 2015-08-21 12:24:21
你可以跳過所有這些,只是把你的數據放在一個表中。然後參考表格和標題,它將是完全動態的。我知道這是來自3年前,但有人可能仍然覺得這有用。
示例代碼:
Activesheet.Range("TableName[ColumnName]").Copy
您還可以使用:
activesheet.listobjects("TableName[ColumnName]").Copy
您可以在工作表中公式甚至利用這個參考系統爲好。它非常有活力。
希望這會有所幫助!
編寫和運行下面的代碼在立即窗口
?cells(,"type the column name here").column
例如?cells(,"BYL").column
將回到2014年的代碼是區分大小寫的,因此您可以寫信?cells(,"byl").column
,輸出仍然是相同的。
在我看來,以獲得列數simpliest方法是:
Sub Sample() ColName = ActiveCell.Column MsgBox ColName End Sub
- 1. Excel列中的排名值
- 2. Excel列名
- 3. Excel VLOOKUP - 如何使用列名而不是列號?
- 4. 符號列名
- 5. 從列號獲取列名?
- 6. excel中非空白行的序列號
- 7. MS Excel:編號排列
- 8. Excel/SQLite日期序列號
- 9. 列名和撇號
- 10. 使用C#的Excel/VSTO中的列號不能爲列字母
- 11. R按列名讀取excel
- 12. Excel - 綁定系列名稱
- 13. vb .net excel index列名
- 14. 在列名中破折號的轉換
- 15. Oracle列別名中的雙引號
- 16. 根據行1中的列名自動調整Excel列寬
- 17. 如何在Excel中列出具有匹配名稱的列值?
- 18. SSIS從excel中導入第一列的列名稱
- 19. 在excel中命名列複雜sql
- 20. 通過xlwings中姓名訪問Excel列
- 21. 從Excel工作表中獲取列名
- 22. Dapper列號而不是列名?
- 23. Excel中VB的代碼來處理具有逗號的文件名的陣列
- 24. Excel VBA中的列
- 25. Excel中的UsedRange列
- 26. Excel中 - 在列
- 27. 派生表中沒有指定列號的列名稱
- 28. 檢查Excel列名與SQL Server 2008列名
- 29. 在Excel VBA中,如何引用包含單引號的命名列
- 30. 如何將散列表名稱和值導出到Excel列中?
有一個看起來這個問題:http://stackoverflow.com/q/22708/390819有一個VBA解決方案有太多 – GolfWolf 2012-04-11 13:05:52
列姓名在信件中還是在標題中? – Fionnuala 2012-04-11 13:16:50
@wolf:這就是OP想要的結果:) – 2012-04-11 13:48:55