【发布时间】:2023-04-11 02:48:01
【问题描述】:
我正在将 Worksheet1 和 Worksheet2 中的数据复制到 Worksheet3 中。
代码遍历工作表 1 中的所需范围,找到一个 X 并将 X 右侧的第 9 行的值复制到工作表 3。然后它在 Worksheet2 上做同样的事情。
Dim WrkSht As Worksheet
Dim WrkShtCol As Sheets
Dim cl As range
Dim rw As range
Sub CopyFromSheetsToOtherSheet()
Set WrkShtCol = Worksheets(Array("Worksheet1", "Worksheet"))
For Each WrkSht In WrkShtCol
For Each rw In WrkSht.range(Antwortrange).Rows 'Reihen durchlaufen innerhalb der Antwortrange
For Each cl In rw.Cells
If LCase(cl.Value) = "x" Then
cl.Offset(0, 9).Copy Sheets("Worksheet3").range("A" & Rows.Count).End(xlUp).Offset(1) 'Jede Zelle mit Value "x" 9 Spalten nach rechts auswählen (Handlungsempfehlung), weitergeben
End If
Next cl
Next rw
代码从单元格 A2 开始复制到 Worksheet3,然后是 A3、A4 等。
我希望它从 A1 开始。第一步为什么不复制到A1?
我稍后会使用函数来查找空白,因此我不能在单元格 A1 中有空白。
【问题讨论】:
-
Sheets("Worksheet3").range("A" & Rows.Count).End(xlUp).Offset(1)-Offset(1)表示如果A1是第一个单元格,A2将是复制到的单元格。 -
嗯 好的,但问题是我需要 Offset(1) 以便在每一行被填满后,下一行被填满,依此类推。我怎样才能在仍然从 Cell A1 开始的同时保持这个?
-
你可以测试
End(xlUp).Row的结果是否=1。 -
好吧,我明白了,但是我在哪里测试它,如果它是/不是 1,我该怎么办?如果它是 1,那么删除第一个单元格,将下面的单元格向上移动,这样我就可以删除空单元格 A1 并使所有内容都向上移动一行?我不确定
标签: excel vba loops worksheet copying