【发布时间】:2019-04-03 20:23:38
【问题描述】:
嗨,这是我的第一篇文章,我是 VBA 的新手。 所以我尝试了最后 6 个小时来完成一项任务。
我已经设法获取 For each 循环的代码,它可以工作并将值复制到现有工作簿。但我不知道为什么它总是将值复制到 A2 而不是进一步复制到 A3/A4/A5 等等。
我尝试了这些代码“ range = range + 1 ”,但我不断收到运行时错误,它仍然将值复制到 A2 并在从循环中获取新值时覆盖它。
我认为它只需要一点点改变,但我无法弄清楚。 :(
Sub copie1()
Dim ws As Worksheet
Dim cell As Range
Dim targetsheet As Worksheet
Dim target As Range
Dim rngTemp As Range
Set wkba = ActiveWorkbook
Worksheets("cop1").Activate
LR = Cells(Rows.Count, "A").End(xlUp).Row
LT = Cells(Rows.Count, "X").End(xlUp).Row
Set rngTemp = Range("X2:X" & LT)
Workbooks.Open Filename:="C:\Users\path......."
Set targetsheet = Worksheets("Data")
Set target= targetsheet.Range("A1")
For Each cell In rngTemp
If cell > 0 Then
target.Offset(1, 0) = cell.Value
End If
target = target+1 '// is this right?
Next cell
End Sub
我的目标是遍历工作簿中的 X 列并复制大于 0 的每个数据(因为有空单元格和值为 0 的单元格) 并将其粘贴到 A2/A3/A4 等范围内的现有工作簿中
【问题讨论】:
-
target = target + 1隐含地在做target.Value = target.Value + 1,如果这就是你的意思,这是正确的。是吗? -
使用计数器。 counter = 1 If cell.Value > 0 Then targetSheet.Range("A" & counter).Value = cell.Value counter = counter + 1 End If
-
我使用了一个计数器,现在它复制了所有值但它跳过了单元格?例如 A2 被填充,然后是空白单元格直到 A21 和一堆复制的值,然后是空白单元格?
-
@SibSib1903,我提供了一个例子来帮助你。
标签: excel vba loops copy-paste