试图parsing报废的数据时VBA 1004错误

我有两个问题:

我有一个从网站4000行刮取的数据,我想清理,并从所有非空行获取相关数据(从BG列)。

此代码会产生1004运行时错误,在debugging器中设置范围将突出显示。

Sub Schaltfläche1_Klicken() Dim i As Integer Dim j As Integer Dim varRangeselect1 As Range Dim varRangeSelect2 As Range For i = 1 To 20 j = 1 If Worksheets("Input").Cells(i, 2).Value <> "" Then Set varRangeselect1 = Worksheets("Input").Range(Cells(i, 1), Cells(i, 7)) Set varRangeSelect2 = Worksheets("Output").Range(Cells(j, 1), Cells(j, 7)) varRangeselect1.Copy varRangeSelect2.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False j = j + 1 End If Next i End Sub 

在输出表中,我想要将数据发布到第一行是空的,在这里适用于这个任务的j的用法是什么?

非常感谢你

您需要完全限定范围。 例如

 Set varRangeselect1 = Worksheets("Input").Range( _ Worksheets("Input").Cells(i, 1), _ Worksheets("Input").Cells(i, 7) _ ) Set varRangeSelect2 = Worksheets("Output").Range( _ Worksheets("Output").Cells(j, 1), _ Worksheets("Output").Cells(j, 7) _ ) 

如果单元格对象不完全合格,那么你将得到1004应用程序定义的错误。

你真的没有清理。 你所要做的就是删除列B中的值为空的行。 为此你可以使用数据>filter。

您也可以在macros中使用“数据”>“筛选”,并且由于您正在使用VBA,因此无需循环。