在Excel中使用宏替换列标题文本

时间:2018-08-03 13:07:31

标签: excel vba excel-vba

我正尝试使用以下代码用不同的标题文本替换B和C列中的标题:

   Columns("B").Replace What:="PN-ASSIGN", _
                         Replacement:="SERV BAL.", _
                         LookAt:=xlPart, _
                         SearchOrder:=xlByRows, _
                         MatchCase:=False, _
                         SearchFormat:=False, _
                         ReplaceFormat:=False

Columns("C").Replace What:="MISC COST", _
                         Replacement:="EQUIP BAL.", _
                         LookAt:=xlPart, _
                         SearchOrder:=xlByRows, _
                         MatchCase:=False, _
                         SearchFormat:=False, _
                         ReplaceFormat:=False

但是当我尝试使用它时,代码似乎没有任何作用。我不确定我缺少什么。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

您需要对工作表进行限定,因为听起来您的宏依赖于活动工作表,这是一种不好的做法。如果您多次引用With,则可以使用ws语句。另外,您无需指明.Replace方法的所有选项。如果未指定,则默认为false。下面的代码应足够。

此外,Option Explicit是一种很好的措施

Option Explicit

Sub Headers()

Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")

ws.Range("B:B").Replace "PN-Assign", "Serv Bal.", xlPart
ws.Range("C:C").Replace "MISC COST", "EQUIP BAL.", xlPart

End Sub