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 時間以上かかりました!!
このスクリプトを「ウサギ」に変更できますか? :)
この点で提供された支援に非常に感謝します。
いつものように.. よろしくお願いします。