gpt4 book ai didi

更改单元格后,Excel复制值与对应于键的VBA

转载 作者:行者123 更新时间:2023-12-04 22:10:12 24 4
gpt4 key购买 nike

几天以来,我一直在尝试以下操作,但由于我缺乏 VBA 技能,因此无法正常工作。

场景:

  • 用户:从下拉列表中选择一个值(单元格只允许一个列表
    在另一张纸中定义)。
  • 代码:将左侧的值复制到相应的列表值。 (这是名单。)
  • 代码:将值粘贴到第一张表的特定字段中。

  • 示例:
    用户从第一张表 A1 的下拉列表中选择值“Team One”。此列表在表 2 中定义。在第二张列表的每个项目旁边是一个单元格,其中包含逗号分隔的名称列表。
    用户从下拉列表中选择了一个团队后,相应的名称列表将复制到表一的字段 B1 中。

    这个过程应该只在 A1 时触发。被改变。

    希望我能说清楚。如果我最终自己找到解决方案,我会在这里发布。

    谢谢您阅读此篇。

    最佳答案

    您可以在没有 VBA 的情况下执行此操作。在您想要粘贴名称列表的字段中输入以下公式:

    =IF(ISBLANK(<address of dropdown on Sheet1>),"",INDEX(<address of list to left of values on Sheet2>,MATCH(<address of dropdown on Sheet1>,<address of dropdown values on Sheet2>,0)))

    当从下拉列表中未选择任何内容时,这将是空白的,并且在选择值时将显示适当的名称列表。

    例如,如果下拉列表在 Sheet1 的 B1 中,下拉值在 Sheet2 的 B1:B9 中,并且相应的名称列表在 Sheet2 的 A1:A9 中,您可以使用以下公式:
    =IF(ISBLANK(Sheet1!B1),"",INDEX(Sheet2!A1:A9,MATCH(Sheet1!B1,Sheet2!B1:B9,0)))

    编辑(每条评论):
    要在 VBA 中使用它,您需要执行类似于 @chris neilsen 建议的操作。在工作表模块中,您需要为更改事件创建一个子:
    Option Explicit
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B1")) Is Nothing Then
    Range("A1").Formula = "=INDEX(Sheet2!A1:A9,MATCH(Sheet1!B1,Sheet2!B1:B9,0))"
    If IsError(Range("A1").Value) Then
    Range("A1") = ""
    Else
    Range("A1").Value = Range("A1")
    End If
    End If
    End Sub

    为了消除任何混淆,A1 是显示输出的单元格。

    关于更改单元格后,Excel复制值与对应于键的VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8646598/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com