Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 如何从excel中的两个命名区域填充单元格值?_Vba_Excel_Excel Formula - Fatal编程技术网

Vba 如何从excel中的两个命名区域填充单元格值?

Vba 如何从excel中的两个命名区域填充单元格值?,vba,excel,excel-formula,Vba,Excel,Excel Formula,我有两个命名范围 范围1:test1、test2、test3、test4 范围2:20,30,50,80 如果我从范围1中选择一个值,则相应的范围2值应复制到下一个单元格。 例如,如果我从下拉列表中选择“测试3”,则文本“50”应复制到相邻单元格 从OP下面的评论中: 表2有两个命名范围-范围1和范围2。在表1中,第一列被指定为“范围1”。如果我从范围1中选择一个值,则相邻单元格应具有相应的“范围2”值 这应该就是你所需要的了 Option Explicit Private Sub Works

我有两个命名范围

范围1:test1、test2、test3、test4

范围2:20,30,50,80

如果我从范围1中选择一个值,则相应的范围2值应复制到下一个单元格。 例如,如果我从下拉列表中选择“测试3”,则文本“50”应复制到相邻单元格

从OP下面的评论中:

表2有两个命名范围-范围1和范围2。在表1中,第一列被指定为“范围1”。如果我从范围1中选择一个值,则相邻单元格应具有相应的“范围2”值

这应该就是你所需要的了

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(0, 0) = "B3" Then
        Application.EnableEvents = False
        Target.Offset(0, 1) = Range("range2") _
            (Application.Match(Target.Value, Range("range1"), 0))
        Application.EnableEvents = True
    End If
End Sub

这应该是你所需要的

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(0, 0) = "B3" Then
        Application.EnableEvents = False
        Target.Offset(0, 1) = Range("range2") _
            (Application.Match(Target.Value, Range("range1"), 0))
        Application.EnableEvents = True
    End If
End Sub

此公式在range1中查找下拉文本,并在range2中调用该位置

将A1替换为下拉选择的位置

假设:两个数组长度相等

=IFERROR( INDEX( range2, MATCH(D2, range1)), "•")

此公式在range1中查找下拉文本,并在range2中调用该位置

将A1替换为下拉选择的位置

假设:两个数组长度相等

=IFERROR( INDEX( range2, MATCH(D2, range1)), "•")

请包含VBA代码片段,并为任务描述增加清晰性:这些下拉列表位于何处?此外,包含此示例数据的工作表片段也会有所帮助。请注意,表2有两个命名范围-范围1和范围2。在表1中,第一列被指定为“范围1”。如果我从范围1中选择一个值,则相邻单元格应具有相应的“范围2”值。我不知道如何在堆栈溢出中附加excel工作表。我将尝试这样做。请包括VBA代码片段,并为您的任务描述增加清晰度:这些下拉列表位于何处?此外,包含此示例数据的工作表片段也会有所帮助。请注意,表2有两个命名范围-范围1和范围2。在表1中,第一列被指定为“范围1”。如果我从范围1中选择一个值,则相邻单元格应具有相应的“范围2”值。我不知道如何在堆栈溢出中附加excel工作表。我会尽力做到的。