私は短い説明と長い説明の部品番号のリストを持っています。リストは、最初の列に部品番号があるようにフォーマットされています。 2番目の列には説明コードがあります。 3列目には説明があります。説明は、名前、短い説明、または前述の説明コードに基づく長い説明のいずれかです。VBA値の場合は行をチェックし、別の値の場合はTrueを貼り付けます
参照してください。スクリーンショットの例: Original Dataset
あなたが見ることができるように、部品の一部は、3つのすべての記述があり、そのうちのいくつかにはありません。
私はシート1からデータを取得して、シート2に情報を貼り付けようとしています。これは、統合された適切な行構造を持っています。部品番号、名前、ショート、ロング。
を参照してくださいスクリーンショットの例:ここではNew Dataset
は、私が取り組んできたいくつかのコードです。私は近くにいるか、少なくとも適切なトラックにいるように感じますが、間違いなく動作していなくて、次のエラーを出さないことは間違いありません。
Dim i As Long
For i = 1 To Rows.Count
With ActiveWorkbook
.Sheets("Parts List").Range("A1").Select
If .Sheets("Parts List").Cells(i, 1).Value = .Sheets("Product Description").Cells(i, 1) Then
If .Sheets("Product Description").Cells(i, 2).Value = "DES" Then
.Sheets("Parts List").Cells(i, 2).Value = .Sheets("Product Description").Cells(i, 2).Value
ElseIf .Sheets("Product Description").Cells(i, 2).Value = "EXT" Then
.Sheets("Parts List").Cells(i, 5).Value = .Sheets("Product Description").Cells(i, 2).Value
ElseIf .Sheets("Product Description").Cells(i, 2).Value = "MKT" Then
.Sheets("Parts List").Cells(i, 3).Value = .Sheets("Product Description").Cells(i, 2).Value
End If
Next i
End With
すべてのヘルプは非常に高く評価されます。私は実際には、この1枚のシートをループして物を取り出し、別のシートに貼り付けようとしています。十分に簡単に聞こえます。
Hmmm ...これは近づいています(元のコードよりもかなり似ています)。これは部品番号を取り、それを正しく移動しますが、他の列には説明コード以外は表示されません。 パート1、DES、MKT、 ""、EXT // パート2、DES、MKT、 ""、EXT // パート3、DES、MKT、 ""、EXT // など。 – Frethy
@Frethy - 申し訳ありませんが、あなたはC列の代わりにB列を書いていたことに気付かなかった(そして、あなたのコードの多くをコピー/ペーストしただけです)。 (編集は、データをコピーするときに "2"を "3"に変更するだけです)。 – YowE3K
@Frethy - 列参照を数値から文字に変更するためのもう1つの編集を行いました。実行が遅く**少し遅くなりますが、どの列が参照されているかが明確になります。 – YowE3K