我怎样才能使这个公式动态

时间:2018-06-26 18:53:00

标签: excel vba excel-vba excel-formula

在电子表格中,我有五个带有以下标题的列

    B3单元格中的
  • “产品代码”
  • C3单元格中的
  • “产品说明”
  • D3单元格中的“每箱数十个”
  • 单元格E3中的“每个托盘的装箱数”
  • F3单元格中的
  • “ UOM”(表示计量单位)

在我的用户表单上,我有一个组合框,用户可以从中选择产品,还可以使用命令按钮和文本框。该组合框的值从电子表格的“产品代码”列中填充。

一旦用户从组合框中选择产品并在文本框中输入一个值(称为“ txtbxdz”)并单击命令按钮,将执行公式。

当前值按照下面的公式硬编码到程序中。

Private Sub cmdbtnPrint_Click()

    Dim textValUp As Long
    Dim textValDown As Long
    Dim txtUOM As String
    Dim txtCs As Long
    Dim txtDz As Long        

        Case Is = "4120-5-01 (ALLERGY 180MG 5CT)"
            txtDz = 2
            txtCs = 200
            txtUOM = "DZ"
    End Select

    textValUp = ((txtbxdz.Value) / txtDz / txtCs) + 0.5 - 1E-16
    textValDown = ((txtbxdz.Value) / txtDz / txtCs) - 0.5 + 1E-16

End Sub

1 个答案:

答案 0 :(得分:0)

是的,如果我正确理解了您的答案。如果我没记错的话,VLookup会做什么。让我举个例子吧。如果用户从组合框中选择4120-5-01(过敏180mg 5ct),这时未知的代码行将循环浏览产品说明,直到代码找到产品为止,我猜这是该列的偏移量保存与该产品对应的值,并将该值分配给适当的变量。 因此,如果产品名称位于单元格C3中 代码将向右偏移1 D3单元格中“每箱数十个”的值 并将其分配给txtDz并再次偏移1,然后将E3中的值分配给txtC,依此类推。