【发布时间】:2014-11-10 18:56:19
【问题描述】:
在 WorksheetA 我有一个列名 Config,
我想查找特定值,如果找到该值,则从另一个名为 WorksheetB 的工作表中复制相应的配置(这基本上是不同配置的索引/列表)
因此,在 WorksheetA 中找到值“J”,则范围 (D20:G31) 将等于 WorksheetB 范围(B15:E26) 的值以此类推,直到验证 WorksheetA 中该列中的所有值。
到目前为止我明显错误的代码是这样的
Public Sub CheckIndex()
Sheets("Worksheet_A").Select
' Find the last row of data
FinalRow = Cells(Rows.Count, 1).End(xlUp).Row
' Loop through each row
For x = 2 To FinalRow
' Decide if to copy based on column C
ThisValue = Cells(x, 3).Value
' SinglePath Configuration
If ThisValue = "J" Then
Sheets("Worksheet_A").Range("D" & x & ":G" & x + 11).Value = Sheets("Worksheet_B").Range("B15:E26").Value
ElseIf ThisValue = "C" Then
Sheets("Worksheet_A").Range("D" & x & ":G" & x + 11).Value = Sheets("Worksheet_B").Range("B3:E14").Value
End If
Next x
结束子
那么有没有办法在循环中使用变量的值来定义当前位置旁边的范围? 我的代码太糟糕了,我应该对此感到失望吗? jk(我已经知道它不好)
我最近才开始使用 VBA,因此我几乎没有编写宏的经验。所以提前感谢所有回复
【问题讨论】:
-
试试
x = 5 Worksheets("Sheet2").Range("B15:E26").Copy Destination:=Worksheets("Sheet1").Range("D" & x) -
@ZAT 是的,非常感谢! (顺便说一句,这是我的第一个问题:我该如何回答?)
-
@Zegat:要么你建议 ZAT 将他的评论变成一个答案,否则你只是接受你自己的答案,并且肯定会支持 ZAT 的评论
-
@Zegad 很高兴它成功了。遵循 iDevlop 所说的。在上面支持我的评论并将您发布的内容标记为下面的答案。
-
@ZAT 我无法支持您的评论(我正在点击您评论旁边的箭头)但不知何故它不可用,我不知道是否与我成为一个相关的约束新用户...:/但是如果你愿意,复制我的答案(我会删除我的)并将你的答案标记为正确的,以便能够回馈你的帮助。