1

27 列を含むワークシート (Sheet2) があります。最初の行は列ヘッダーで、AZ と NUM で合計 27 列です。各列には、列の文字にソートされた制限付き URL の非常に長いリストがあり、最後の (27 番目) 列は数字で始まる URL 用です。列の長さは 30 万から 60 万セルです。

私が探していたのは、Col A Sheet1 に新しく追加されたすべての URL を調べて、Sheet2 に存在するかどうかを調べ、各 URL に「既に存在する」または「追加する」というフラグを立てるマクロ スクリプトでした。 :

シート1

Col(A)          Col(B)
badsite1.com    already exist
badsite2.com    already exist
badsite3.com    to be added
badsite4.con    to be added
badsite5.com    already exist

したがって、「追加予定」の URL は、その URL に対してオンラインで別のテストを実行した後に Sheet2 に追加されます。

驚くべきことに、いくつかのマイナーな変更を適用した後、まさに私が行っていることを実行する次のスクリプトを見つけました (そのソースはありません)。

Sub x()

Dim rFind As Range, sFind As Range, sAddr As String, ws As Worksheet, rng As Range, ms     As Worksheet
Application.ScreenUpdating = 0
Set ws = Sheets("Sheet2")
Set ms = Sheets("Sheet1")
ms.Range("B2:B" & Rows.Count).ClearContents
Set rng = ms.Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row)

For Each sFind In rng
    With ws.UsedRange
        Set rFind = .Find(sFind, .Cells(.Cells.Count), xlValues, xlPart)
        If Not rFind Is Nothing Then
            sAddr = rFind.Address
            Do
                sFind.Offset(, 1) = rFind.Address
                sFind.Font.Color = -16776961
                Set rFind = .FindNext(rFind)
            Loop While rFind.Address <> sAddr
            sAddr = ""
            Else
            sFind.Offset(, 1) = "No Found"
            sFind.Offset(, 1).Font.Color = -16776961
        End If
    End With
Next
Set ms = Nothing
Set ws = Nothing
Set rng = Nothing
Set rFind = Nothing
Application.ScreenUpdating = True
End Sub 

URL の小さなリスト (例: 5-10) でこのスクリプトを実行すると、すばらしい結果が得られます。Sheet1 col-A に長いリストがあり、私のように Sheet2 に巨大なリストがあるため、このスクリプトは「カメ」であり、167 個の URL のリストを調べるのに 1 時間以上かかりました!!

このスクリプトを「ウサギ」に変更できますか? :)

この点で提供された支援に非常に感謝します。

いつものように.. よろしくお願いします。

4

1 に答える 1