Excel根据另一个更改列

时间:2017-11-06 08:29:29

标签: excel vba excel-vba

我目前正在使用相同格式的6个Excel工作簿。基本上我有一个表格,其中包括需要使用其数量的产品代码。我在每个Excel文件中有大约200个工作表,格式相同。我想根据我制作的乘数表来更新这些产品数量。这是下面的数据示例;

数据样本

enter image description here

乘数表

enter image description here

因此,样本代​​码的新值应为4,15 3,5 7,84和88,62。

因为带有工作簿的大量页面,可能需要一个接一个地更改或插入某种公式,这需要很长时间。我想知道如何通过简单的步骤完成工作。

谢谢!

2 个答案:

答案 0 :(得分:0)

您需要做的就是使用VLookup functionarray formula。然后,您将能够为每条记录填写或复制公式。

在你的情况下,我建议使用数组公式。假设,如果MultiplierTable是工作表的名称,并且该工作表包含C4:D7范围内的数据(如您所提供),则可以复制下面的公式并将其粘贴到E4单元格中:

=D4*SUM(IF(C4=MultiplierTable!C$4:C$7,MultiplierTable!D$4:D$7,0))

填写公式。选择整个列并粘贴为同一列中的值。对每个工作表重复此步骤。

请点击链接了解更多详情。

如果您想使用VBA,请告诉我。我会尽力改善我的答案。

答案 1 :(得分:0)

我检查了一些VBA基础知识指南,并创建了自己的VBA脚本。它变得有点硬编码,但因为这是一次性工作,所以它完成了工作。

Sub degistir()
    Dim WS_Count As Integer
         Dim I As Integer
         Dim val As Double



         WS_Count = ActiveWorkbook.Worksheets.Count


         For I = 1 To WS_Count
            Worksheets(I).Activate

            For R = 8 To 14
                val = ActiveSheet.Cells(R, 4)

                If ActiveSheet.Cells(R, 2) Like "P001" Then
                val = val * 1
                ElseIf ActiveSheet.Cells(R, 2) Like "P002" Then
                val = val * 0.533333333
                'and goes...
                End If



                ActiveSheet.Cells(R, 4).Value = val


            Next R
         Next I
End Sub