0

特定の列を修正する必要がある Excel スプレッドシートがあります。

ステップ 1. 列名を見つける

ステップ 2. この列に入力されたすべての行をマークします。

ステップ 3. 特定のアクションに進みます (ほとんどの場合、検索して置換するか、他の列が「これ」の場合は、列を「あれ」に修正します)。

最初の 2 つの手順を指定して、手順 3 に進むためにコードを簡単に修正するためのスペースを残しておきたいと思います。

同様の仕事をするVBAコードがあります。特定の列名を検索し、入力されたすべての行をマークします。インターネットで見つけた他のコードをメイン コードに簡単にコピー アンド ペーストすることはできません。

列名を検出し、この列のすべてのレコードをマークするマクロ

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

私が見逃しているのは、既にマークされている列の行を「言う」コードだと思います…. ここでは、インターネットで見つかったコードの一部のみを貼り付けます。

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 に答える