作者:乔山办公网日期:
返回目录:excel表格制作
在VBA中,一般都不会再象EXCEL里面一样用"AA,AB,BB,CA"这样的字百母列号.而是用数字表示列度号.同样返回某个单元格时,也可以直接以数字表求.如cells(3,1)表示A3.cells(3,14)表示N3
columns(3).select 表示选择第三回列,即C列
如果你非得要返回一个字母列标的话,试试下面的笨方法,因为答实在没用过
下面这段返回选择单元格所在的列标
Sub tt()
a = Selection.Address(True, False)
adt = Left(a, Application.WorksheetFunction.Find("$", a) - 1)
MsgBox adt
End Sub
=SUBSTITUTE(SUBSTITUTE(ADDRESS(1,A1),"$",""),"1","")
A1为数百字所在单元格,上度面是大写,问小写答的话再使用内LOWER函数转换容一下
=LOWER(SUBSTITUTE(SUBSTITUTE(ADDRESS(1,A1),"$",""),"1",""))
一定要用这种方e68a84e8a2ade79fa5e98193333法可以试试下面这个function,2010通过。
Function ConvertToLetter(iCol As Integer) As String
Dim iAlpha As Integer
Dim iColTemp As Integer
Dim i As Integer
If iCol > 702 Then
i = 26
iColTemp = iCol - 26 ^ 2 * i
While iColTemp < 27
i = i - 1
iColTemp = iCol - 26 ^ 2 * i
ConvertToLetter = Chr(i + 64)
Wend
iCol = iColTemp
End If
iAlpha = (iCol - 1) \ 26
Select Case iAlpha
Case 0
Case Else
ConvertToLetter = ConvertToLetter & Chr(64 + iAlpha)
End Select
ConvertToLetter = ConvertToLetter & Chr(64 + ((iCol - 1) Mod 26) + 1)
End Function
另外,如果你只是想获取单元格列标,可以使用下面的代码,应该是最简单直接的。
GetColumn = Split(Cells(1, C).Address, "$")(1) ‘C 是列号
Sub test()
MsgBox Split(Cells(1, Columns.Count).Address, "$")(1)
End Sub
答案来啦。