我一直在互联网上搜索几个小时,找不到任何问题来回答我的问题,所以我想我会在这里试试,希望有人能指出我正确的方向。以下是我要完成的任务:......
我正在为我当地的飞镖联盟制作一张自我计算得分表。除了团队数据外,工作表即将完成。
示例: 我在单元格 A4 中有一个下拉列表,其中包含我所在部门的8个团队
列表通过另一个工作表的数据验证填充。此另一个工作表还包含8列(每个团队1个),其中包含该团队中球员的名称。每列都以团队命名。
我希望能够从 A4 列表中选择一个团队,并自动将其玩家插入 A24 到 A36 的单元格中。
如果有人知道如何做到这一点或知道有关让我入门的教程,我们将不胜感激。
感谢所有回复的人。
我需要在上面的解释中做出纠正......我应该在发布之前意识到错误......我道歉
我附上了手动填写的工作表副本,以显示我想要做的事情,根据在下拉列表中选择的团队,在A列和I列中填充第58至69行。
我正用这个把头发拉出来。!
答案 0 :(得分:0)
编辑
将以下代码放在“主要”工作表的代码窗格中(即在其单元格“A5”和“K5”中具有下拉列表的代码窗格中:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(False, False) <> "A5" And Target.Address(False, False) <> "K5" Then Exit Sub '<-- exit if changed cell is not "A4"
With Range("A58:A69").Offset(, IIf(Not Intersect(Target, Columns("K")) Is Nothing, 8, 0)) '<--| reference range you want to write result corresponding to validation cell choice (offset 8 columns if target is "K5")
On Error GoTo ExitSub '<-- properly handel possible errors and be sure to restore events handling you're going to disable next line
Application.EnableEvents = False '<--| disable events handling not to have this sub got called in an infinite recursive loop
.Value = Worksheets("Players").Rows(1).Find(what:=Target.Value, LookIn:=xlValues, lookat:=xlWhole).Offset(1).Resize(.Rows.Count).Value '<--| write in referenced range the content of Player worksheet range in rows 2 to 12 in column whose header in row 1 matches target value
End With
ExitSub:
Application.EnableEvents = True '<-- restore event handling
End Sub
可以按如下方式访问工作表的代码窗格:
打开VBA编辑器(在Excel界面中为ALT + F11)
打开项目经理(CTRL + R)窗口
展开“Microsoft Excel对象”节点
双击“主要”工作表
工作表代码窗格不在左侧
复制上面的代码并将其粘贴到代码窗格中
答案 1 :(得分:0)
我要感谢大家的帮助。它让我想到了选择......当我终于找到一个如此简单的答案时,我从椅子上掉了下来!
它就像一个魅力!
<强> = INDEX(玩家$ A:$ H,ROWS($ A $ 1:$ A2),MATCH(A $ 5中,玩家$ A $ 1:$ H $ 1日)) 强>
还有一些小问题可以解决,但它可以完成任务!
再次感谢大家!