无法在动态非空单元格上运行

时间:2015-10-29 12:49:20

标签: excel excel-vba vba

我必须将数据从sheet1排序到sheet2,并引用A列中的非空单元格。Sheet1 dataSheet2 data

我已经为它编写了如下代码:

Sub polo()
Dim lastrow As Long
lastrow = Sheets("Sheet1").Range("B" & Rows.Count).End(xlUp).Row
j = 2
For i = 1 To lastrow
If Sheets("Sheet1").Cells(i, 1).Value = "" Then
Sheets("Sheet2").Cells(j, 2).Value = Sheets("Sheet1").Cells(i, 1).Offset(, 1).Value
Sheets("Sheet2").Cells(j, 4).Value = Sheets("Sheet1").Cells(i - 1, 2).Value
j = j + 1
End If
Next i
End Sub

但问题是,我得到的结果与sheet2的D列相同。 我想要结果如E列所示。

请帮忙。

1 个答案:

答案 0 :(得分:2)

试试这个版本:

Sub polo()
    Dim lastrow               As Long
    Dim sTemp as String
    lastrow = Sheets("Sheet1").Range("B" & Rows.Count).End(xlUp).Row
    j = 2
    For i = 1 To lastrow
        If Sheets("Sheet1").Cells(i, 1).Value = "" Then
            Sheets("Sheet2").Cells(j, 2).Value = Sheets("Sheet1").Cells(i, 1).Offset(, 1).Value
            Sheets("Sheet2").Cells(j, 4).Value = stemp
            j = j + 1
        Else
            stemp = Sheets("Sheet1").Cells(i, 2).Value
        End If
    Next i
End Sub