我有一个Excel电子表格,我需要修改一个特定的列。
步骤1.找到列名
步骤2.标记此列中所有已填充的行
步骤3.继续执行某些操作(主要是查找和替换,或者如果其他列是“this”,则修改我的列“that”。
我希望指定前两个步骤,并为我提供修改代码的空间,以便继续执行第3步。
我有VBA代码,它可以完成类似的工作。它搜索特定的列名称,它标记所有填充的行。它不允许我轻松地将互联网上的其他代码复制并粘贴到主代码中。
MACRO获取列名称并标记此列中的所有记录
Sub FindAddressColumn()
Dim rngAddress As Range
Set rngAddress = Range("A1:ZZ1").Find("Address")
If rngAddress Is Nothing Then
MsgBox "Address column was not found."
Exit Sub
End If
Range(rngAddress, rngAddress.End(xlDown)).Select
End Sub
互联网上发现的大多数宏都指定了列。
我想添加到主要代码的代码示例:
Sub GOOD_WORKS_Find_Replace_Commas_in_Emails()
Sheets("Data").Activate
Dim i As String
Dim k As String
i = ","
k = "."
Columns("R").Replace What:=i, Replacement:=k, LookAt:=xlPart, MatchCase:=False
Sheets("Automation").Activate
MsgBox "Removing commas in emails - Done!"
End Sub
我相信我想念的是代码,它会为已标记的列行“说”....在这里,您只粘贴在互联网上找到的部分代码。
答案 0 :(得分:2)
我认为这段代码可以完成你想要的工作:
Sub ColumnReplace()
Dim TargetColumn As Range
Dim Header As String
Dim SearchFor As String
Dim ReplaceTo As String
Header = "ccc"
SearchFor = "111"
ReplaceTo = "99999"
Set TargetColumn = ThisWorkbook.ActiveSheet.Range("1:1").Find(Header, LookIn:=xlValues, LookAt:=xlPart, MatchCase:=False)
Set TargetColumn = Cells(1, TargetColumn.Column).EntireColumn
TargetColumn.Replace What:=SearchFor, Replacement:=ReplaceTo, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
根据需要采用工作簿/表格名称以及搜索/替换字符串。
示例文件:https://www.dropbox.com/s/s7fghhlsmydjaf6/EntireColumnReplace.xlsm