gpt4 book ai didi

excel - 每次迭代增加范围

转载 作者:行者123 更新时间:2023-12-02 21:09:40 25 4
gpt4 key购买 nike

我正在为我的工作自动生成 Excel 工作表,但遇到了问题。

我正在尝试复制特定范围 (A3:D3) 并将其粘贴到另一个工作簿的结束行。我正在尝试使用 if 语句来过滤单元格 B3 中包含数字 0 的范围。

请帮忙。我是一个完全的菜鸟,我才刚刚开始。抱歉,如果有很多问题。

我尝试将范围更改为单元格 (i, 2),但它仅复制 B3,而不复制其余部分 (A3:D3)。

编辑:忘记在单元格中添加 sEdit2:我只需要复制四个单元格(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:

Run-time error '1004':

Method 'Range' of object '_Worksheet' failed

并且调试突出显示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

只需确保 iCopyLastRowiDestLastRow 是您期望的值即可。

我希望这会有所帮助。

关于excel - 每次迭代增加范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58298179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com