1つのワークシート内の発注書テンプレートから、同じExcelワークブック内のすべての発注書日付を記録するデータベースワークシートにエントリを引き出します。注文テンプレートタブで注文されたSKUは、1を超えることが多く、お互いに異なります。以下のVBAコードを編集してデータベース]タブに異なるSKU番号のを引っ張っする方法を疑問に思う:Excel VBA DoWhileループ - 各ループで項目のリストを返す方法は?
Private Sub CommandButton1_Click()
Dim OrderDate As String, PONumber As String, Vendor As String, ShipTo As String, SKU As String
Worksheets("Order Form 1").Select
OrderDate = Range("B3")
PONumber = Range("D3")
Vendor = Range("B7")
ShipTo = Range("D7")
SKU = Range("F3")
R = 3
Do While Cells(R, 6) <> ""
Worksheets("Database").Select
Worksheets("Database").Range("A1").Select
If Worksheets("Database").Range("A1").Offset(1, 0) <> "" Then
Worksheets("Database").Range("A1").End(xlDown).Select
End If
ActiveCell.Offset(1, 0).Select
ActiveCell.Value = OrderDate
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = PONumber
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Vendor
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = ShipTo
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = SKU
Worksheets("Order Form 1").Select
R = R + 1
Loop
End Sub
は基本的に2がありますワークブック?エラーの可能性を少なくするためには、 '.Select'とジェネリック' Range(...) '、' 'ActiveCell''を捨てなければなりません。あなたの目標に到達する1つの方法は、2つのワークブック/ワークシート変数を作成し、オフセット/ 2つのロング変数を作成して、処理している行を保存することです。 – PatricK
1)オーダーシートに複数のSKUが格納されている場所を明確にしてください。2) ""ではなくvbNullstringを使用してください。3)既存の値を上書きしないようにしてください。書き込む次の使用可能な行を見つける必要があります。 – QHarr