我有一些不断移动的列,我正在尝试重写一些宏来使用Header名称。将代码应用于Sub。
时遇到一些问题 Trying to replace this: Columns("EO:EO").Select
同
Columns("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
The Sub
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
答案 0 :(得分:1)
'Trying to replace this: Columns("EO:EO").Select
Columns(aCell.Column).Select
答案 1 :(得分:1)
或者你可以试试这个:
aCell.EntireColumn.Select
答案 2 :(得分:1)
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