この問題は文章が多少奇妙であることを認識していますが、私は比較的新しくコーディングしています。 1つのシート上のデータの列を繰り返し、その列の各セルを、別のシートの特定の行を検索するための検索語として使用したいとします。明示的に定義されていないセルからデータを参照する
Sub Test1()
n = 0
' n is the counter for the number of times that the search term will appear
Dim sn As String
For Each a In Worksheets("Sheet1").range("A5:A34").Value
f = a.Cells
sn = range(a).Value
' each sn is equal to the contents of the cell "a", which will be the serial number of the tooling
For Each c In Worksheets("RunsheetTest").range("A3:R3")
' Defines c as a range with cells A3 to R3?
If InStr(c.Cells, sn) > 0 Then
n = n + 1
Else
n = n
End If
' If the serial number is found in one of the cells, add 1 to n and move on to the next.
Next c
MsgBox "Searching for " & sn
range(a).Value = n
Next a
' I'm also getting an error here, saying "for loop not initialized", however I thought I initialized it above.
End Sub
私の最大の問題は、私はループではなく、特定のセルの現在オンになっているセルを参照したいので、私は、一番上の「F = a.Cells」のために右の構文を使用しているかどうかであるとなぜコンパイラが私のループにエラーを与えているのですか? VBAでネストループを実行できませんか?また、私のコメントのどれかが実際に何が起こっているかについて全く正確でない場合は、私に知らせてください。
ありがとうございます!
"f"とは何ですか?変数名で何をしようとしているのかを理解するのは難しい – RGA
VBAの範囲とFor Eachループの動作を正しく参照する方法を調べることをお勧めします。あなたの一般的な構造は(コードの設定方法のように)健全ですが、構文/方法はすべてオフです – RGA
私は@RGAと合意しています。 'a'、' c'、 'f'は変数の説明的な名前ではなく、最終的には混乱するでしょう。 :)私は個人的に、データ型の3文字の略語で各変数を開始します。例えば、シリアル番号変数の 'strSN'は文字列であるため、' a'の代わりに 'rngSearchTerm'であり、これは範囲であり、見つけたい値を含んでいるからです。 – Tim