VBA 1004尝试解析报废数据时出错

时间:2014-10-03 14:08:31

标签: excel vba excel-vba

我有两个问题:

我有一排来自网站的4000行数据,我正在尝试清理并从所有非空行中获取相关数据(来自B-G列)。

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

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

在输出表中,我希望数据在第一行中是空的,是否适用于该任务?

非常感谢

2 个答案:

答案 0 :(得分:1)

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

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应用程序定义错误。

答案 1 :(得分:1)

你真的没有清理过。您似乎正在做的就是删除B列中的值为空的行。为此你可以使用数据&gt;过滤

您还可以使用数据&gt;在宏中过滤,因为无论如何都使用VBA,没有理由循环。