2016-10-19 9 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

2つのもの。

まず、fndとrplcにバリアントを使用しないでください。文字列を使用します。

第2に、「セル」を使用するのではなく、置き換えを行う範囲を指定します。

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"を置くよりも不変のテキストを、保持するためにあなたのコードの先頭に定数を使用することをお勧めします。一番上の定数で維持する方が簡単です。

関連する問題