まず、Visual Basicでは大文字と小文字の区別が重要なので、2枚のシートを比較するときは、VBA.UCaseを使用してすべてを大文字に変換する必要があります。また、単語自体の周囲にスペースがある可能性があるため、トリム関数も含まれています。 2つの比較可能な文字列を作成するために必要なそれ以上のテキスト操作は、調査する必要があります。このexpert guidanceをExcelマクロでテキスト文字列を操作することをお勧めします
したがって、両方のシートが同じブック内にあると仮定すると、Visual Basic Editor内から2つのシートのコードネームを取得するのが最善の出発点ですデフォルトでは、Sheet1/Sheet2など)。以下では、Sheet1がOutputシートであり、Sheet2が検索しているデータであると仮定しています。あなたは罰金のコード名は、あなたは以下のコードでシート(「SheetName1」)とシート(「SheetName2」)を置き換えることができますすることができない場合は、次の
Dim SourceRow as Long
Dim DestRow as Long
For DestRow = 1 to 10
For SourceRow = 1 to 10
If VBA.Trim(VBA.UCase(Sheet1.Cells(DestRow,"DestCol"))) = VBA.Trim(VBA.UCase(Sheet2.Cells(SourceRow,"SourceCol"))) then
Sheet1.Cells(DestRow,"OutputCol") = "Yes"
Goto NextDestRow
End If
Next SourceRow
Sheet1.Cells(DestRow,"OutputCol") = "No"
NextDestRow:
Next DestRow
コードを使用すると、単一の列にデータを探していることを前提としてい"DestCol"と "SourceCol"と書いたところでは、その列の数値を挿入するだけです(A = 1、B = 2など)。 "OutputCol"は、出力先シートに出力を配置する列です。
このループは、各シートの1行目から10行目に興味があるとします。必要に応じて
一方のリストと他方のリストのどちらか一方、または両方を比較する必要はありますか? –
VLookUp http://office.microsoft.com/en-us/excel-help/vlookup-HP005209335.aspxとお考えですか? – Fionnuala
には、シートとシートの指定された列について述べる必要がありますか?なぜあなたは仮定をするのではなく、私たちがあなたを助けることよりも簡単な方法を説明しないでください – niko