【发布时间】:2018-10-04 00:43:36
【问题描述】:
我想创建一个循环遍历数据验证列表的宏,该列表位于名为 Gym Weekly Template 的工作表的单元格 C8 中。对于数据验证列表中的每个值(该列表由来自工作表“测试数据”的范围 A6:A45 的数据组成),我有一个在同一工作表的单元格 W73 中生成的 vlookup 值.
我想将单元格 W73 中的每个值粘贴到名为 Gym Load Monitoring 的新工作表中,该工作表从单元格 B2 开始,一直向下到 B 列,一旦数据验证列表循环通过,就结束宏。 如果可能的话,如果我要再次运行宏,我希望它能够识别工作表 Gym Load Monitoring 的列 B 中有数据,并将值粘贴到下一个空白列中,依此类推,宏运行。 我已经编写了当前代码,但我感觉我完全偏离了轨道:
Sub PasteLoads()
Dim dvCell As Range
Dim inputRange As Range
Dim c As Range
Dim i As Long
'Which cell has data validation
Set dvCell = Worksheets("Gym Weekly Template").Range("C8")
'Determine where validation comes from
Set inputRange = Evaluate(dvCell.Validation.Formula1)
i = 1
Application.ScreenUpdating = False
For Each c In inputRange
dvCell = c.Value
With Worksheets("Gym Load Monitoring")
ThisWorkbook.Sheets("Gym Weekly Template").Range("W73").Copy.Range("B" & .Rows.Count).End (xlUp)
Next c
Application.ScreenUpdating = True
End Sub
我对 VBA 编码不是很有经验,所以这可能是错误的。我知道我需要添加 Offset 但不确定在哪里。
【问题讨论】: