私は一連のフォームといくつかのマクロからなる大きなプロジェクトに取り組んでいます。私が毎月更新する必要がある主な報告書は、21K行で成長しています。 12カ月間の更新をすべて12個の別々の列で収集します。 「更新」を完了するには、列「A」に含まれるメインファイルの部品番号(21k行はすべて部品番号とその情報)を一致させ、部品番号で生成された別のレポートに一致させる必要がありますカラム「B」)とが一致した場合(正確に一致する必要がある)、以下を返す:大きな20k行シートのVlookupの代わりに検索しますか?
可変
プレイスによってカラム7 SHT1の値を指定SHT列にプレース列9 SHT1の値をROによるSHT列の列11の値がSHT 1 34
が一致するたびにSHT列27
置き、サイクリング行w、列Aに含まれる最後の部品番号まで、sht。
次のコードは機能しますが、私はこれを書いた方がいいでしょうか?これは速度と精度を処理するのに最適ですか?私はちょうど別のコードブロックで実現しました。この同じ方法は正確な一致を実行していませんでした。これは現在、私の方法論を変更するために赤旗を投げかけています。私は絶対に正確であるためにこれが必要であり、正確に一致する必要があります。
'Set variable with cell range value for ABC Code based on month selected by User
Dim ABCCodeCell As Integer
Dim wb1 As Workbook
Dim wb2 As Workbook
Dim sht1 As Worksheet
Dim sht As Worksheet
Dim lRow As Long
Dim rng As Range
Set wb1 = Workbooks(vFileName1) 'ABC Matrix File
Set wb2 = Workbooks(vFileName2) 'Cycle Count Remainder Browse File
Set sht = wb1.Worksheets(1) 'ABC Matrix File
Set sht1 = wb2.Worksheets(1) 'Cycle Count Remainder Browse File
lRow = sht.Cells(sht.Rows.Count, 1).End(xlUp).Row
Select Case ABCMatrixMonthSelect.ComboBox1.value
Case "January": ABCCodeCell = 21
Case "February": ABCCodeCell = 23
Case "March": ABCCodeCell = 25
Case "April": ABCCodeCell = 3
Case "May": ABCCodeCell = 5
Case "June": ABCCodeCell = 7
Case "July": ABCCodeCell = 9
Case "August": ABCCodeCell = 11
Case "September": ABCCodeCell = 13
Case "October": ABCCodeCell = 15
Case "November": ABCCodeCell = 17
Case "December": ABCCodeCell = 19
End Select
'Execute Find (Vlookup)
On Error Resume Next
For i = 2 To lRow
If sht.Cells(i, 1).value <> "" Then
Set rng = sht1.Range("B:B").Find(sht.Cells(i, 1).value)
If Not rng Is Nothing Then
sht.Cells(i, ABCCodeCell).value = sht1.Cells(rng.Row, 9).value
sht.Cells(i, 27).value = sht1.Cells(rng.Row, 7).value
sht.Cells(i, 34).value = sht1.Cells(rng.Row, 11).value
End If
End If
Next
@Tim Williamsこれはそれです。私は前に投稿したように書き直さなければならなかったが、誰も応答しなかったので、数日後に削除した。ありがとうございました! - Athena、別名SharePoint0508 – SharePoint0508
それは私によく見えます...それは現時点では遅すぎますか?あなたは 'Application.ScreenUpdating = False、Application.Cursor = xlWait'などを使用していますか?特に動作しないものはありますか?これはCode Reviewにとってより良い質問かもしれません。 – dwirony
*私はちょうど別のコードブロックで実現しましたが、この同じ方法は完全一致を実行していませんでした。*、これはどういう意味ですか? – dwirony