Excel VBA错误 - 单元格(R,C).Paste [关闭]


0

我正在Workbook0.Worksheet1中编写代码,将Workbook1.WorkSheet1中的单元格复制到Workbook2.Worksheet1中的单元格

这是代码:

Sub CopyInfo()  
    Dim WSCopy As Worksheet  
    Dim WSPaste As Worksheet  
    Set WSCopy = Workbooks(Cells(3, 4).Value).Worksheets("Sheet1")  
    Set WSPaste = Workbooks(Cells(4, 4).Value).Worksheets("Sheet1")  
    RowCopy = Range(Cells(11, 3)).Row  
    ColCopy = Range(Cells(11, 3)).Column  
    RowPaste = Range(Cells(11, 4)).Row  
    ColPaste = Range(Cells(11, 4)).Column  
    Data = "Data"  
    While Data <> ""  
        Data = WSCopy.Cells(RowCopy, ColCopy)  
        WSPaste.Cells(RowPaste, ColPaste) = Data  
        RowCopy = RowCopy + 1  
        ColCopy = ColCopy  
        RowPaste = RowPatse  
        ColPaste = ColPaste + 1  
    Wend  
End Sub

它在第一次迭代时工作正常,在第二次迭代时发送错误。

希望有人告诉我我的错误在哪里。


哪条线给你一个错误?
乔尔泰勒2013年

您是否可以单步执行代码以确认所有值都符合您的预期?我猜你有一个空引用或类似的。
戴夫

Answers:


3

我猜这个问题是由这行代码中的拼写引起的:

RowPaste = RowPatse

由于VBA不要求您声明变量,因此它将分配给RowPaste新的Empty Variant的值RowPatse。因此代码第二次破解。

要避免这种拼写错误问题,您可以添加Option Explicit到模块的顶部。这将导致编译器在代码中调用未声明的变量时抛出错误。

除了这个问题,行

ColCopy = ColCopy
RowPaste = RowPaste

可以被删除,因为他们什么都不做。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.