0
コードの塊を検索用語として使用して別の行にあるサブを作成しようとしています。 0032
などの4桁のコードを検索しようとしていますが、何を試してもが検索され、1132
、1321
、3211
などのセクションが見つかりません。これが今私が問題に取り組んでいることです。VBAで証明書番号の形式で検索する
For i = 1 To frng.Count
crng(i, 1).Value = Application.WorksheetFunction.CountIf(mfrng, cfrng(i, 1).Value)
Next i
'puts the number of times it appears next to the filtered version of it
'to find the row number
'use numbers from cfrng to search in mcode range and find rownumbers. Then add one to the rownumber and use it to copy and paste the other columns. Organize by lcode + 40000
Dim wrrow As Long
Dim wdrow As Long
Dim flist As Range
rangevalue = ("R2:R" & flastrow)
Set flist = Range(rangevalue)
Dim nlist As Range
rangevalue = ("S2:S" & flastrow)
Set nlist = Range(rangevalue)
Dim Search As Variant
Dim j As Integer
Dim n As Integer
Dim found As Object
For j = 1 To flist.Count
Search = flist(j, 1)
n = nlist(j, 1)
Set found = mfrng.Find(What:=Search, LookIn:=xlValues, lookat:=xlPart, searchformat:=True)
Dim s As Integer
For s = 1 To n
If s = 1 Then GoTo First Else GoTo Second
First:
wrrow = found.Row
wdrow = (wrrow + 1)
wd.Activate
Dim high As Range
rangevalue = ("V" & wdrow & ", AA" & wdrow & ", D" & wdrow & ", E" & wdrow & ", L" & wdrow & ", M" & wdrow & ", U" & wdrow)
Set high = Range(rangevalue)
high.Select
Selection.Copy
wr.Activate
Dim r As Integer
Dim v As Integer
r = wr.Cells(wr.Rows.Count, "B").End(xlUp).Row
v = (r + 1)
wr.Range("B" & v).Select
ActiveSheet.Paste
wr.Range("A" & v).Value = j
GoTo Third
Second:
Set found = mfrng.FindNext(found)
wrrow = found.Row
wdrow = (wrrow + 1)
wd.Activate
rangevalue = ("V" & wdrow & ",AA" & wdrow & ",D" & wdrow & ",E" & wdrow & ",L" & wdrow & ",M" & wdrow & ",U" & wdrow)
Set high = Range(rangevalue)
high.Select
Selection.Copy
r = wr.Cells(wr.Rows.Count, "B").End(xlUp).Row
v = (r + 1)
wr.Activate
Range("B" & v).Select
ActiveSheet.Paste
wr.Range("A" & v).Value = j
Third:
Next s
Next j
フィールド・リストの値が0032
として表示されますが、私は試してみて、検索を使用する場合には32
、ない0032
表します。数値形式を試すと、オブジェクトに必要なエラーが返されます。
私はバリアントに検索を設定しました。私は、検索を比較しています何の
いくつかの例としては、に私はそれが0032
で行を検索するなど、私が欲しいものです0032
、だけでなく、2132
、3225
です。
j変数が変更された検索条件のリストがあります。私はまた、特定の変数がnlistであるものが現れる回数があります。
はい、その文字列を見つけることができます。データのサンプルと予想される出力とともに、より多くのコードを表示します。 [良い質問をする方法](http://stackoverflow.com/help/how-to-ask)、[最小限の完全かつ検証可能な例を作成する方法](http: –
「0032」を検索している場合は、効果的に数字ではなくテキストを検索しています。検索される範囲がテキストでもあれば、すべてが問題なく、 'Dim Search as String'を保証するだけです。範囲が数字で構成されている場合は、一致するものは見つからず、「Dim Search as Long」を選択してから、代わりに「32」の番号を検索します(検索の数字のフォーマットに関係なく、どのような値(例)が検索されているのかを私たちに教えてください – Ralph
コードモジュールの最上部に 'Option Explicit'を入れてください。これはすべての変数の宣言を必要とし、タイプミス、宣言されていない変数(例えば:あなたが投稿したコードで 'Search'が宣言されていないなど)、その他の問題を取り除く。' .numberformat'は 'Range'オブジェクトのプロパティなので、' Search'は'Range';それゆえあなたの' object required'エラーです。また、 '.Find'ステートメントのオプション引数の** ALL **を含みます。さらに助けが必要なら、私と@Ralphの両方の質問に答えてくださいあなたのデータと期待される出力のサンプルを提供することに関して。 –