2013-02-15 205 views
0

我有一个Excel电子表格,我需要修改一个特定的列。Excel VBA代码替换具体的列

第1步:找到列名

步骤2.马克在此列的所有填充行

第3步:用某种行动继续(主要是查找和替换,或者如果另一列是“本”然后修改我的专栏“那”)。

我想指定的第2步,让我的空间可以方便地修改代码步骤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

你需要处理的所需的列所有匹配的细胞,或只有特定的?例如:你有5个带有'this'单元格的列,但是你想根据其他标准只替换3个单元格而不是5个单元格? – 2013-02-15 10:40:38

+0

在大多数情况下,该操作将应用于列中的所有单元格。唯一的区别是我需要一个宏,它将查找填充在名为Comments的列中的值,并根据注释修改所选单元格。但正如我所说,在大多数情况下,相同的规则将适用于所选列中的所有单元格 – mgunia 2013-02-15 11:33:19

回答

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

+0

添加了示例文件。 – 2013-02-15 12:01:37

+0

谢谢彼得。似乎是有希望的发现和替换作品。但是,我需要对此代码实施countif需要哪些修改? – mgunia 2013-02-15 14:31:22

+0

假设上面的代码:'k = Application.WorksheetFunction.CountIf(TargetColumn,ReplaceTo)'但是,这是另一个**问题。示例文件可以使用相同的链接。 – 2013-02-15 14:39:37