范围错误 - 循环以增加行索引vba

时间:2016-06-07 16:16:53

标签: vba loops range runtime-error

这是我的代码的一部分。最后,我想循环遍历单元格,在两个短语之间找到文本,将其连接起来,并将其粘贴到确定的列中。代码找到" ID"后,它会在粘贴范围中添加一行,然后重新开始。 (这是在底部附近)。

我能做的是让每个部分的范围合作。当我使用' wksSource.Range(Cells(R,2))时.Value = stringValues'它抛出错误:1004,对象工作表的方法范围失败。但是如果我使用' wksSource.Range(" B15")。Value = stringValues'它完全没问题。问题是,这不是动态的。我需要' R'每次增加短语" ID"找到了。每个部分的列都是常量。 (R,2)(R,3)等。

我已经完成了很多谷歌搜索,我理解为什么会抛出这个错误;我无法弄清楚为什么它会在这种情况下发生。工作表已定义......并且它与" B15"一起使用,所以我认为错误在" R"中,但我被卡住了。

请帮忙! (我意识到这可能是一路循环,如果你愿意,我很乐意听到这方面的建议,但是现在,我正在努力学习,这对我来说似乎是最好的方法。一次一件。今天用一个小循环增加行,明天解决大循环。:))

Dim rng As Range, AllPos As Range, rngEnd As Range, rngStart As Range
 Dim DeptRng As Variant, stringValues As String, cell As Range, NextRow As Variant
 Dim R As Integer, lastRowCon As Integer, wksSource As Worksheet, paste As Range

 Set AllPos = Range("A2:A53")
 R = 2
 Set wksSource = ActiveWorkbook.Sheets("Sheet1")
 Set rngStart = AllPos.Find("Department Description:").Cells
    If Not rngStart Is Nothing Then
        Set rngEnd = AllPos.Find("Position Duties :").Cells
        Set DeptRng = Range(rngStart, rngEnd.Offset(1))
            For Each C In DeptRng
                stringValues = stringValues & C
            Next C
           wksSource.Range(Cells(R, 2)).Value = stringValues
         stringValues = ""
    End If

.....上面的几次迭代......

Set rngStart = AllPos.Find("ID:").Cells
    If Not rngStart Is Nothing Then
'Finds last row of content
     lastRowCon = wksSource.Range("A1").End(xlDown).Row
'Finds first row without content
    R = lastRowCon + 1
        'select next empty row, Column B
    End If

1 个答案:

答案 0 :(得分:0)

wksSource.Cells(R, 2).Value = stringValues

如果是单个单元格,则不需要Range()

编辑:有关更多示例,请参阅this。如果为Range属性赋予一个参数,则必须是Range的名称。 Cells(i,j)返回Range个对象,您不需要/不能使用Cells(i,j)作为自己的名称。当您使用Cells(i,j)时,就像使用ActiveSheet.Cells(i,j),顺便说一句。