使用列标题列字母代码来设置macros的范围

我有不断移动的列,我试图重写一些macros使用标题名称。 在将代码应用于Sub时遇到一些麻烦。

Trying to replace this: Columns("EO:EO").SelectColumns("aCell:aCell").Select

尝试了其他各种方式,但我什么也没有工作。

谢谢

 Function LCol(ColumnNumber As Long) As String Dim ColNum As Integer Dim ColLetters As String ColNum = ColumnNumber ColLetters = "" Do ColLetters = Chr(((ColNum - 1) Mod 26) + 65) & ColLetters ColNum = Int((ColNum - ((ColNum - 1) Mod 26)) / 26) Loop While ColNum > 0 LCol = ColLetters End Function 

小组

 Sub RenameOther() Dim strSearch As String Dim aCell As Range Dim colz As Range strSearch = "attribute_4" 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 'Trying to replace this: Columns("EO:EO").Select Columns("aCell:aCell").Select Selection.Replace What:="Client/Customer/Other (optional)", Replacement:="Other", _ LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:= _ False, ReplaceFormat:=False Cells(2, aCell.Column).Select End If End Sub 

或者,你可以试试这个:

 aCell.EntireColumn.Select 
  'Trying to replace this: Columns("EO:EO").Select Columns(aCell.Column).Select 
 Sub Tester() ReplaceColumnContent "attribute_4", "Client/Customer/Other (optional)", "Other" End Sub Sub ReplaceColumnContent(colHeader As String, LookFor As String, ReplaceWith As String) Dim strSearch As String Dim aCell As Range Dim colz As Range Set aCell = Sheet1.Rows(1).Find(What:=colHeader, LookIn:=xlValues, _ LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False) If Not aCell Is Nothing Then With Sheet1.Range(aCell.Offset(1, 0), Sheet1.Cells(Rows.Count, aCell.Column).End(xlUp)) .Replace What:=LookFor, Replacement:=ReplaceWith, _ LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _ SearchFormat:=False, ReplaceFormat:=False End With 'aCell.offset(1,0).select End If End Sub