【问题标题】:Copy data to another sheet based on selection from dropdown根据下拉列表中的选择将数据复制到另一张工作表
【发布时间】:2018-03-17 09:07:21
【问题描述】:

我希望根据 Excel 下拉列表中的选择将值复制/粘贴到另一个工作表。当我从下拉列表中选择时,工作表中的其他单元格会被填充。我想将这些填充的值复制/粘贴到同一工作簿中的另一张表中。我希望在更改选择时复制/粘贴的值保持不变。

寻找可应用于多个单元格的公式。我尝试了一个 IF 公式,但是当从下拉列表中更改选择时,值会发生变化。

【问题讨论】:

  • 我认为您将需要 VBA。每次更改触发器时,公式都会不断重新计算。您要将范围定义为要复制的范围,设置与下拉关联的更改事件,当下拉更改时,将复制范围复制到另一个工作表中的下一个可用行。尝试编写其中的一些代码,然后提出任何问题。

标签: excel excel-formula


【解决方案1】:

我能够在其他线程上找到此代码。我修改为使用我的工作表。我需要弄清楚如何为要打印到 OutSheet 的数据添加标题。

Sub SpitValues()
 Dim dvCell As Range
 Dim inputRange As Range
 Dim c As Range
 Dim i As Long

'Cell that contains data validation list
'Cell where Dropdown list is
Set dvCell = Worksheets("InSheet").Range("C3")

'Determine where validation comes from
Set inputRange = Evaluate(dvCell.Validation.Formula1)

i = 1

'Begin loop
 Application.ScreenUpdating = False
 For Each c In inputRange
   dvCell = c.Value

   Worksheets("OutSheet").Cells(i, "A").Value = Worksheets("InSheet").Range("B10").Value
   Worksheets("OutSheet").Cells(i, "B").Value = Worksheets("InSheet").Range("G10").Value
   Worksheets("OutSheet").Cells(i, "C").Value = Worksheets("InSheet").Range("H10").Value

 i = i + 1

Next c
Application.ScreenUpdating = True

End Sub

【讨论】:

  • 标题从何而来?你想把它们放在哪里?
  • 标题来自“InSheet”并转到 A1、B1、C1 ......我想出了一个办法。我在顶部插入一个空行并从 "InSheet" Worksheets("OutSheet").Rows(1).Insert shift:=xlShiftDown Worksheets("OutSheet").Range("A1").Value = WorkSheets("InSheet".Range("G9").Value
  • Insheet 到底在哪里?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多