基于多个标准的VBA复制粘贴

时间:2014-06-17 15:48:32

标签: excel vba

我正在处理一个电子表格,该电子表格有两个不同的下拉变量,每个下拉变量有3-4个选项。 I.E首先下拉可以选择{2层,3层,4层,40层},第二层可以是{2层,3层,4层}。我对VBA很陌生,之前只使用过SQL,所以我在这里黑暗中拍摄。

基本上,根据所选的下拉菜单,我希望电子表格能够复制并粘贴"来自另一个相应的其他选项卡的定价网格,并将其粘贴到"设置表单"。由于有两个下拉,我想第8-16列用于第一个定价网格,然后18个用于第二组定价网格。

这是我到目前为止所拥有的:

     Sub Ifs()
    If Worksheets("Set Up Table").Range(B3) = "2-Tier" Then
    Worksheets("2 Tier MEC Rates").Range(A1, F3).Copy Destination:=Worksheets("Set Up Table").Range(A7)

ElseIf If Worksheets("Set Up Table").Range(B3) = "3-Tier" Then
    Worksheets("3 Tier MEC Rates").Range(A1, F4).Copy Destination:=Worksheets("Set Up Table").Range(A7)

ElseIf If Worksheets("Set Up Table").Range(B3) = "4-Tier" Then
    Worksheets("4 Tier MEC Rates").Range(A1, F5).Copy Destination:=Worksheets("Set Up Table").Range(A7)

ElseIf If Worksheets("Set Up Table").Range(B3) = "40-Tier" Then
    Worksheets("7 Tier MEC Rates").Range(A1, F8).Copy Destination:=Worksheets("Set Up Table").Range(A7)

    End If

If Worksheets("Set Up Table").Range(B4) = "2-Tier" Then
    Worksheets("2 Tier LM Rates").Range(A2, E12).Copy Destination:=Worksheets("Set Up Table").Range(A18)

ElseIf Worksheets("Set Up Table").Range(B4) = "3-Tier" Then
    Worksheets("3 Tier LM Rates").Range(A2, E15).Copy Destination:=Worksheets("Set Up Table").Range(A18)

ElseIf Worksheets("Set Up Table").Range(B4) = "4-Tier" Then
    Worksheets("4 Tier LM Rates").Range(A2, E18).Copy Destination:=Worksheets("Set Up Table").Range(A18)

End If

End Sub

我唯一的另一个担心是[除了我完全做错了],我的所有定价表都有基于其他变量的公式来确定正确的定价,并且会以某种方式搞砸了所有这些。

1 个答案:

答案 0 :(得分:0)

首先,我将介绍一下您可以在这里学习的select ... caseSelect...Case Statement (Visual Basic)

这会整理你的许多if陈述,让你更容易决定会发生什么事情"如果"已经选择了一个特定的选项。