excel - 每次迭代增加范围
问题描述
我正在为我的工作自动化 Excel 工作表,但我遇到了一个问题。
我正在尝试复制特定范围 (A3:D3) 并将其粘贴到另一个工作簿的最后一行。我正在尝试使用 if 语句来过滤单元格 B3 中编号为 0 的范围。
请帮忙。我是一个完整的菜鸟,我才刚刚开始。很抱歉,如果有很多问题。
我试图将范围更改为一个单元格(i,2),但它只复制 B3 而不是其余的(A3:D3)。
编辑:忘记在单元格中添加 s Edit2:我只需要复制四个单元格 (A3:D3) 并在下一次迭代时将其递增,以便复制的单元格为 (A4:D4)
Sub CopyData()
Dim wsCopy As Worksheet, wsDest As Worksheet
Dim iCopyLastRow As Long, iDestLastRow As Long
Set wsCopy = Workbooks("file1.xlsx").Worksheets("trend")
Set wsDest = Workbooks("file2.xlsx").Worksheets("raw data")
iCopyLastRow = wsCopy.Cells(wsCopy.Rows.Count, "A").End(xlUp).Row
For i = 3 To iCopyLastRow
If wsCopy.Cells(i, 2).Value = 0 Then
Else
wsCopy.range(Cell(i,2), Cell(i,4)).Copy
'wsCopy.Cells(i, 2). Copy ##this copies just one cell
iDestLastRow = wsDest.Cells(wsDest.Rows.Count, "B").End(xlUp).Offset(1).Row
wsDest.range("A" & iDestLastRow).PasteSpecial xlPasteValues
End If
Next i
Error messages:
运行时错误“1004”:
对象“_Worksheet”的方法“范围”失败
和调试亮点wsCopy.range(Cell(i,2), Cell(i,4)).Copy
,else之后的语句
解决方案
尝试使用此代码:
Sub CopyData()
Dim wsCopy As Worksheet, wsDest As Worksheet
Dim iCopyLastRow As Long, iDestLastRow As Long
Set wsCopy = Workbooks("file1.xlsx").Worksheets("trend")
Set wsDest = Workbooks("file2.xlsx").Worksheets("raw data")
iCopyLastRow = wsCopy.Cells(wsCopy.Rows.Count, "A").End(xlUp).Row
For i = 3 To iCopyLastRow
If wsCopy.Cells(i, 1).Value <> 0 Then
'A = 1, D = 4
wsCopy.Range(wsCopy.Cells(i, 1), wsCopy.Cells(i, 4)).Copy
iDestLastRow = wsDest.Cells(wsDest.Rows.Count, "B").End(xlUp).Offset(1).Row
wsDest.Range("A" & iDestLastRow).PasteSpecial xlPasteValues
End If
Next i
End Sub
只需确保iCopyLastRow
并且iDestLastRow
是您期望的值。
我希望这有帮助。
推荐阅读
- python - gphoto2如何处理失焦警告
- c# - 具有由 DataSource 属性组成的自定义字符串的 DataSource DisplayMember
- sql - 使用 like 在 Oracle 中搜索
- python - 如何在不使用全局变量的情况下运行此代码?
- oracle - 交换交换、值主键、Oracle、ORA-00001 的过程
- haskell - Haskell 中单个类型级别元组的类型级别列表
- angularjs - Why does mutating a value of a parent directive's scope in link not provide that mutated state to a child directive?
- reactjs - 谷歌登录令牌到本地存储(反应)
- r - 将整个数据框转换为数字的代码
- json - 尝试显示 JSON 数据,但收到 JSON 解析错误