Vba 如何从excel中的两个命名区域填充单元格值?
我有两个命名范围 范围1:test1、test2、test3、test4 范围2:20,30,50,80 如果我从范围1中选择一个值,则相应的范围2值应复制到下一个单元格。 例如,如果我从下拉列表中选择“测试3”,则文本“50”应复制到相邻单元格 从OP下面的评论中: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
表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工作表。我会尽力做到的。