Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 如何使此公式具有动态性_Vba_Excel_Excel Formula - Fatal编程技术网

Vba 如何使此公式具有动态性

Vba 如何使此公式具有动态性,vba,excel,excel-formula,Vba,Excel,Excel Formula,在电子表格中,我有五列,标题如下 单元格B3中的“产品代码” 单元格C3中的“产品说明” D3单元中的“每箱数十个” 单元格E3中的“每个托盘的箱子” 单元格F3中的“UOM”(表示计量单位) 在我的用户表单上,我有一个用户将从中选择产品的组合框、一个命令按钮和一个文本框。该组合框的值从电子表格产品代码列填充 一旦用户从组合框中选择产品并在文本框(称为“txtbxdz”)中输入值并单击命令按钮,将执行公式 目前,这些值已硬编码到程序中,如下式所示 Private Sub cmdbtnPrin

在电子表格中,我有五列,标题如下

  • 单元格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

是的,如果我理解正确的话。如果我没记错的话,一个VLookup会做类似的事情。让我举个例子。如果用户从组合框中选择4120-5-01(Allergy 180mg 5ct),此时一行未知的代码将在产品描述中循环,直到代码找到产品,那么我猜偏移量将指向保存对应于该产品的值的列,并将该值分配给相应的变量。 因此,如果产品名称位于单元格C3中 代码将向右偏移1 单元格D3中的“每箱数十个”值
然后将其分配给txtDz,再将其偏移1,然后将E3中的值分配给txtCs,依此类推。

问题是,
如何使某某变量动态?
如果是,请将问题实际包括一个问题:)我不确定你在问什么,但我越是盯着它看,我越想通过将变量传递到函数中来实现硬编码?因此,您希望将变量“传递”到Sub,以便可以使用相同的Sub,但“搜索字符串”中的pas、txtDz、txtCs和TXTOM可能来自工作表单元格值?您可以将一个选择目标传递到Sub中,然后将offset函数传递到相邻单元格中以获取信息,就像行选择一样。需要更多的上下文。