0

我有一个 Excel 电子表格,需要在其中修改特定列。

步骤 1. 找到列名

步骤 2. 标记此列中的所有填充行

第 3 步。继续执行某些操作(主要是查找和替换,或者如果其他列是“this”,则将我的列修改为“that”)。

我希望指定前 2 个步骤,并留出空间来轻松修改代码以继续执行第 3 步。

我有做类似工作的 VBA 代码。它搜索特定的列名,并标记所有已填充的行。它不允许我轻松地将在 Internet 上找到的其他代码复制并粘贴到主代码中。

查找列名并标记此列中所有记录的宏

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

在 Internet 上找到的大多数宏都有指定的列。

我想添加到主代码中的代码示例:

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

我相信我想念的是对已经标记的列行“说”的代码……。在这里,您只粘贴在互联网上找到的部分代码。

4

1 回答 1

3

我认为这段代码可以完成你想要的工作:

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

于 2013-02-15T12:01:11.437 回答