繁体   English   中英

当下拉框更改值时,使用VBA代码从单元格复制特定值

[英]Using VBA code to Copy Specific value from a cell when the dropdown box changes that value

我是VBA的新手,直到最近才发展我的Excel技能。

我为投资项目情况创建了3种不同的方案,这些方案作为下拉框显示在单元格“ h13”中,其中提供了三个选项,最佳情况/最坏情况/基本情况。

当您选择每种方案时,各种输出都会在工作表上更改,我设置了以下代码来更改输出并根据方案显示相关的输出:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$H$13" Then
    ActiveSheet.Scenarios(Target.Value).Show
  End If

现在,我要实现以下目标:

在单元格E13中,我有一个主要关注的数值(我应该注意,这是NPV公式)。 每次我们更改方案时,此值都会明显更改。 我想创建一个简单的汇总表,如下所示:方案1 = x方案2 = y方案3 = z因此,理想情况下,我想做的是,当我们选择方案1时,我们从E13中复制值表示B21 。 当我们选择下一个方案时,E13将会明显改变,但是我希望B21的复制值保持不变,现在新的方案2值将显示在B22中。

我不知道该怎么做? 我尝试将其添加到底部,但值不会保持“静态”

    If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("h13")) Is Nothing Then
    Range("E13").Copy
    Range("B21:B23").PasteSpecial xlPasteValues
End If
  End Sub

现在我想我知道我需要创建一个引用,以便它会读取类似e13 = y然后复制,下一个e13 = x复制并循环的内容? 直到所有结果发生为止。 虽然不确定如何做到。

任何帮助将不胜感激,我已尝试过尽可能多地阅读此书,但由于我对此非常陌生,因此我无法真正确切地指出我在代码方面的需求

提前致谢。

此解决方案在B20:D23“范围\\表”中显示结果(请参见下图)

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rTbl As Range, lRow As Long

    Application.EnableEvents = False                        'To avoid triggering again when table is updated

    If Target.Address = "$H$13" Then

        Rem Filters value in target range
        Select Case Target.Value2
        Case "Base case", "Best case", "Worst case"         'Change as required
        Case Else:  GoTo ExitTkn                            'Value is not in the list then exit
        End Select

        Rem Show Scenario
        ActiveSheet.Scenarios(Target.Value).Show

        Rem Update Results
        Set rTbl = Range("B21").Resize(3, 3)                'Change as required
        With rTbl
            lRow = WorksheetFunction.Match(Target.Value, .Columns(1), 0)
            .Cells(lRow, 2).Value = Range("E13").Value2     'Updates result - Change as required
            .Cells(lRow, 3).Value = Range("D13").Value2     'Updates scenario variable - Change as required
        End With

  End If

ExitTkn:
    Application.EnableEvents = True

  End Sub

在此处输入图片说明 在此处输入图片说明

建议阅读以下页面,以更深入地了解所使用的资源:

选择个案陈述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM