2016-10-19 24 views
0
Dim sht As Worksheet 
    Dim fnd As Variant 
    Dim rplc As Variant 

    fnd = "April" 
    rplc = "May" 

    For Each sht In ActiveWorkbook.Worksheets 
      sht.Cells.Replace what:=fnd, Replacement:=rplc, _ 
        LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _ 
        SearchFormat:=False, ReplaceFormat:=False 
    Next sht 

End Sub 

我有以下代碼,我需要它在整個工作簿中查找和替換,但只在第30行。我如何編輯代碼來執行此操作?在特定行中查找和替換整個工作簿

+3

而不是'sht.Cells.Replace'使用'sht.Rows(30).Replace' – tigeravatar

回答

1

兩件事。

首先,不要使用fnd和rplc的變體;使用字符串。

其次,指定您想要進行替換的範圍,而不是僅使用「單元格」。

Sub Replacer() 
    Const csFnd As String = "April" 
    Const csRpl As String = "May" 
    Const csRow As String = "A30" 

    Dim sht As Worksheet 

    For Each sht In ActiveWorkbook.Worksheets 
     sht.Range(csRow).EntireRow.Replace _ 
      what:=csFnd, _ 
      Replacement:=csRpl 
    Next sht 
End Sub 

這也是使用常量在你的代碼的頂部保持不變的文本,而不是把variable = "String"代碼的身體很好的做法。頂部的常量很容易維護。

相關問題