簡體   English   中英

基於多個條件的VBA復制粘貼

[英]VBA Copy Paste based on Multiple Criteria

我正在處理一個電子表格,該電子表格具有兩個不同的下拉變量,每個下拉菜單中都有3-4個選項。 IE瀏覽器的第一個下拉菜單可以選擇為{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

我唯一的擔心是(除了我完全沒有做錯這件事之外),我所有的定價表都有基於其他變量的公式來確定正確的定價,這將以某種方式弄亂所有這些。

首先,我將看一下利用select ... case ,您可以在這里了解到: Select ... Case語句(Visual Basic)

這將整理您的許多if語句,並使您更輕松地決定“如果”選擇了特定選項會發生什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM