さて、ビジネス(従業員の使用)の注文ログを作成しようとしています。
複数のユーザーが必要なすべての情報にアクセス/入力できるフォームを用意しました。1 人が開いて注文できるように、Excel スプレッドシートに印刷されます。ユーザーが前年のログから注文行をコピーしたい場合があるため (これまでに 4 件あります)、それを現在のログに取り込もうとしています。
ユーザーが開いた別のワークブックを参照し、現在のログで開いているユーザーフォームに情報をコピーするのに問題があります。私はこれを持っています:
Private Sub cmdCopy_Click()
Dim rowRef As Integer, colItem As Integer, colSup As Integer, colCatNum As Integer, colQty As Integer, colUnit As Integer, colCat As Integer
'stores row of selected order from old order log successfully
rowRef = ActiveCell.row
'I'm trying to find which column has which headers as the logs aren't consistent
For x = 2 To 9
If ActiveWorkbook.Sheet1.Cells(2, x).Text = "Item" Then
colItem = x
ElseIf ActiveWorkbook.Sheet1.Cells(2, x).Text = "Supplier" Then
colSup = x
ElseIf ActiveWorkbook.Sheet1.Cells(2, x).Text = "Catalogue #" Then
colCatNum = x
ElseIf ActiveWorkbook.Sheet1.Cells(2, x).Text = "Qty" Then
colQty = x
ElseIf ActiveWorkbook.Sheet1.Cells(2, x).Text = "Unit" Then
colUnit = x
ElseIf ActiveWorkbook.Sheet1.Cells(2, x).Text = "Category" Then
colCat = x
End If
Next x
'fills information into userform
txtItem.Text = Sheet1.Cells(rowRef, colItem).Text
txtSup.Text = Sheet1.Cells(rowRef, colSup).Value
txtCatNum.Text = Sheet1.Cells(rowRef, colCatNum).Value
txtQty.Text = Sheet1.Cells(rowRef, colQty).Value
cboUnit.Text = Sheet1.Cells(rowRef, colUnit).Value
cboCat.Text = Sheet1.Cells(rowRef, colCat).Value
End Sub
だから私がしたいことは次のとおりです。
- ユーザーが現在の注文ログを開く
- ユーザーが ActiveX ボタンを押して frmOrderLog を開く
- a) ユーザーは手動で情報を入力します
b) ユーザーは今年のログから情報をコピーします
c) ユーザーはウィンドウを最小化し、前年のログを開き、セルを選択し、ユーザーフォームで [注文のコピー] ボタンを押します。前年の注文ログは、今年の注文ログ内のフォームの対応するテキスト ボックス/コンボ ボックスに記録されます。
明確にする必要がある場合は、お知らせください。これが既にフォーラムにある場合は申し訳ありませんが、私の検索用語を使用しても役立つ回答が見つかりませんでした。