Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.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
Excel-基于一个单元格中的输入自动填充列_Excel_Excel Formula - Fatal编程技术网

Excel-基于一个单元格中的输入自动填充列

Excel-基于一个单元格中的输入自动填充列,excel,excel-formula,Excel,Excel Formula,在excel中,当我在“输入列”中输入“A”时,我希望如图所示自动填充Harry、Josh、Rob和Peter 类似地,当我在输入列中输入“B”时,我希望Kim、Nancy、Paul、George自动填充。有人可以发布VBA代码来完成此操作,或者我可以使用公式本身完成此操作吗?自动代码解决方案: 在图纸选项卡上单击鼠标右键,然后选择“查看代码” 复制并粘贴下面的代码 按Alt+F11返回Excel 每当列A中的一个或多个单元格(即“目标列”)发生更改时,此代码都会进行所需的更改 要改用B列,

在excel中,当我在“输入列”中输入“A”时,我希望如图所示自动填充Harry、Josh、Rob和Peter


类似地,当我在输入列中输入“B”时,我希望Kim、Nancy、Paul、George自动填充。有人可以发布VBA代码来完成此操作,或者我可以使用公式本身完成此操作吗?

自动代码解决方案:

  • 在图纸选项卡上单击鼠标右键,然后选择“查看代码”
  • 复制并粘贴下面的代码
  • 按Alt+F11返回Excel
每当
列A
中的一个或多个单元格(即“目标列”)发生更改时,此代码都会进行所需的更改

要改用B列,请尝试
Set rng1=Intersect(目标,列(“B”))

代码

    Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng1 As Range
Dim rng2 As Range
Set rng1 = Intersect(Target, Columns("A"))
If rng1 Is Nothing Then Exit Sub
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
For Each rng2 In rng1
Select Case UCase$(rng2.Value)
Case "A"
rng2.Offset(0, 1).Resize(1, 2) = Array("Harry", "Josh")
rng2.Offset(1, 1).Resize(1, 2) = Array("Rob", "Peter")
Case "B"
rng2.Offset(0, 1).Resize(1, 2) = Array("Kim", "Nancy")
rng2.Offset(1, 1).Resize(1, 2) = Array("Paul", "George")
End Select
Next
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub

自动化代码解决方案:

  • 在图纸选项卡上单击鼠标右键,然后选择“查看代码”
  • 复制并粘贴下面的代码
  • 按Alt+F11返回Excel
每当
列A
中的一个或多个单元格(即“目标列”)发生更改时,此代码都会进行所需的更改

要改用B列,请尝试
Set rng1=Intersect(目标,列(“B”))

代码

    Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng1 As Range
Dim rng2 As Range
Set rng1 = Intersect(Target, Columns("A"))
If rng1 Is Nothing Then Exit Sub
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
For Each rng2 In rng1
Select Case UCase$(rng2.Value)
Case "A"
rng2.Offset(0, 1).Resize(1, 2) = Array("Harry", "Josh")
rng2.Offset(1, 1).Resize(1, 2) = Array("Rob", "Peter")
Case "B"
rng2.Offset(0, 1).Resize(1, 2) = Array("Kim", "Nancy")
rng2.Offset(1, 1).Resize(1, 2) = Array("Paul", "George")
End Select
Next
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub

您可以使用
VBA
公式进行操作。您只需要创建一些映射,告诉您哪些值对应于哪些字母。对于公式,我将查看
选择
Vlookup
或者
偏移量
匹配
索引
,以开始。您可以使用
VBA
或使用
Formulas
。您只需要创建一些映射,告诉您哪些值对应于哪些字母。对于公式,我将查看
选择
Vlookup
或者
偏移量
匹配
索引
,以开始使用。@brettdj这是非常快的,并且可以在真像我想要的。谢谢你,圣诞快乐!@Regmi-thx的及时收尾,并祝节日快乐:)@brettdj这是一款超高速的产品,工作完全符合我的要求。谢谢你,圣诞快乐!@Regmi-thx的及时收尾,并祝节日快乐:)