【问题标题】:VBA Copy Paste based on Multiple Criteria基于多个条件的 VBA 复制粘贴
【发布时间】:2014-06-17 15:48:32
【问题描述】:

我正在制作一个电子表格,该电子表格有两个不同的下拉变量,每个下拉变量中有 3-4 个选项。 I.E 第一个下拉菜单可以选择 {2-Tier, 3-Tier, 4-Tier, 40-Tier},第二个可以是 {2-Tier, 3-Tier, 4-Tier}。我对 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

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

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    首先我会看看如何使用select ... case,你可以在这里了解: Select...Case Statement (Visual Basic)

    这将整理您的许多 if 语句,并使您更容易决定“如果”选择了特定选项会发生什么。

    【讨论】:

      猜你喜欢
      • 2023-03-18
      • 2018-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-26
      • 1970-01-01
      相关资源
      最近更新 更多