0

好的,所以我正在尝试为企业(员工使用)创建订单日志。

我有一个表格,其中多个用户可以访问/输入所有需要的信息。它打印到 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

所以我想要发生的是:

  1. 用户打开当前订单日志
  2. 用户按下 ActiveX 按钮打开 frmOrderLog
  3. a) 用户手动输入信息
    b) 用户从当年的日志中复制信息
    c) 用户最小化窗口,打开上一年的日志,选择一个单元格,然后在用户窗体中按下“复制顺序”按钮,然后从相应单元格中复制信息上一年的订单登录到本年度订单日志内表格中相应的文本框/组合框

如果有任何澄清要求,请告诉我。如果这已经在论坛中,我很抱歉,但是使用我的搜索词我找不到有帮助的答案。

4

1 回答 1

1

对我来说似乎是一个简单的语法问题:

你想改变:

If ActiveWorkbook.Sheet1.Cells(2, x).Text = "Item" Then

到:

If ActiveWorkbook.Sheets(1).Cells(2, x).Text = "Item" Then

Sheet1 语法对我不起作用。

显然,您希望在 Sheet1 出现的任何其他地方进行相同的更改。

于 2012-08-28T16:20:54.847 回答