【发布时间】:2025-11-26 14:20:04
【问题描述】:
所以我得到了这段代码,它将单元格从 C4 复制到 C10 并粘贴它们。问题是它粘贴到同一个工作表,我需要将它粘贴到第二个工作表。
我不知道如何在代码中更改工作表,所以我希望有人可以帮助我。
代码如下:
Sub Save_Click()
Range("C4:C10").Copy
Dim curRange As Range
Dim curCol As Integer: curCol = 7
Dim completed As Boolean: completed = False
Do
curCol = curCol + 1
Set curRange = Range(Cells(3, curCol), Cells(9, curCol))
If (WorksheetFunction.CountA(curRange) = 0) Then
Exit Do
End If
Loop While (Not completed)
curRange.PasteSpecial
End Sub
【问题讨论】:
-
您真的只是想将一张表 (C4:C10) 中的值粘贴到另一张表中,还是还有其他内容?中间的循环是否旨在找到下一个可用的未使用列?大概这也应该检查您正在粘贴的工作表?
-
我告诉过你:只需将工作表名称添加到范围。如果原始工作表是“sheet1”,则 Range("C4:C10") 与 Sheets("sheet1").Range("C4:C10") 相同。如果目标范围在“sheet2”中,可以设置 curRange = Sheets("sheet2").Range(Cells(3, curCol), Cells(9, curCol))
-
在处理不同的工作表时,您应该始终包含 Sheets("sheet name") 标题部分。 Range("C4:C10") 是 Sheets("sheet1").Range("C4:C10") 的缩写形式,在处理不同的工作表时可能会造成混淆(不确定活动工作表是 sheet1 还是 sheet2) .如果不清楚,请随时询问更多。如果您不理解我的观点,您应该在上一个问题中再次问我;我以为你很清楚。
标签: excel copy-paste worksheet-function vba