VBA偏移函数提供轴误差
当前正在宏上执行VBA的最后一位。此宏旨在通过使用Findstring的Inputbox查找一行,将其复制到其他工作表,将此行粘贴到第一个空行,并删除原始工作表上的行VBA偏移函数提供轴误差,vba,excel,Vba,Excel,当前正在宏上执行VBA的最后一位。此宏旨在通过使用Findstring的Inputbox查找一行,将其复制到其他工作表,将此行粘贴到第一个空行,并删除原始工作表上的行 If Not Rng Is Nothing Then Rng.EntireRow.Copy Worksheets("ScrapLogboek").Cells(Rows.Count, "A").End(xlUp).Offset(1, -1) Worksheets("ScrapLogboek").Range("
If Not Rng Is Nothing Then
Rng.EntireRow.Copy
Worksheets("ScrapLogboek").Cells(Rows.Count, "A").End(xlUp).Offset(1, -1)
Worksheets("ScrapLogboek").Range("A2").PasteSpecial
Rng.EntireRow.Delete
Else
MsgBox ("Niks gescrapt. Check of het B-nummer correct is.")
End If
End With
MsgBox ("Logboek gescrapt.")
End If
End Sub
现在我在偏移函数上不断得到一个synthaxis错误。我做错了什么?如评论中所述;工作表(“ScrapLogboek”)。单元格(Rows.Count,“A”)。结束(xlUp)。偏移量(1,-1)。不知什么原因,这一行让我大吃一惊。你在列A,所以你不能抵消负一列,因为左边没有其他列 使用
工作表(“ScrapLogboek”).Cells(Rows.Count,“A”).End(xlUp).Offset(1,0)
尝试您的代码,它会工作的!;)
您的代码总是粘贴在A2上,这可能不是目的,因此下面是更正的版本:
If Not Rng Is Nothing Then
Rng.EntireRow.Copy
Worksheets("ScrapLogboek").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).PasteSpecial
Rng.EntireRow.Delete
Else
MsgBox ("Niks gescrapt. Check of het B-nummer correct is.")
End If
End With
MsgBox ("Logboek gescrapt.")
End If
End Sub
请添加到您的代码示例或整理它。您得到了
以
结束和如果
没有开始条件则结束。它在哪一条线上失败了?怎么了?对不起,汤姆。总代码太长,出现错误。我批准了你的编辑。它失败的线路是;工作表(“ScrapLogboek”)。单元格(Rows.Count,“A”)。结束(xlUp)。偏移量(1,-1)。如果没有此功能,它可以正常工作,但会不断覆盖找到的数据,并复制到另一个工作表中。为了防止这种情况发生,我想用Offset函数试试。你没有用Offset做任何事情。是否要选择它或为其赋值?告诉偏移量在行上向下移动1,在列上向左移动1。当你在A栏做这件事的时候,没有地方可以让它给你错误。汤姆,那太愚蠢了。谢谢你的更正@Alex4336,我希望它下面的粘贴功能查找第一个空行并粘贴到那里,而不是每次都在A2中粘贴,覆盖所有内容。你是我今天的英雄!谢谢你教我如何处理偏移量,甚至纠正我的代码。祝你好运!