如果ID为空白,则复制行

时间:2015-02-24 10:20:17

标签: excel excel-vba vba

您好我想在数据库中创建数据

ID   Name   Card No 
1    A      3
            2 
2    B      1 
3    C      1
            2

就像

ID   Name   Card No  
1    A      3 
1    A      2  
2    B      1  
3    C      1 
3    C      2

使用excel宏..请帮助谢谢:D

更新,我的数据是这样的,调试器只复制A& B栏

Col->A    B      C         D
Row
7    ID   Name   Address   Card No 
8    1    A                3
9                          2 
10   2    B      X road    1 
11   3    C      Y road    1
12                         2

如何解决这个问题?请帮助:(它从第7行开始

1 个答案:

答案 0 :(得分:0)

简单但代码如下:

注意:下面的代码假定你的" C&C列#34;没有任何空单元格。如果你这样做,请添加评论,以便我可以更新。

Sub copyPaste()
Dim lastRow As Long

lastRow = Range("C" & Rows.Count).End(xlUp).Row '<- Column that there is no empty cells

For i = 1 To lastRow
    If Range("A" & i).Value = "" Then
        Range("A" & i).Value = Range("A" & i).Offset(-1, 0).Value
    End If
    If Range("B" & i).Value = "" Then
        Range("B" & i).Value = Range("B" & i).Offset(-1, 0).Value
    End If
Next
End Sub

更新:下面的代码将对工作簿中的所有列执行相同的工作。代码假定在工作表的第一行中有标题,并且它使用此信息来计算要对列进行的迭代次数。

Sub copyPaste()
Dim lastRow As Long
Dim lastCol As Long

lastRow = Range("C" & Rows.Count).End(xlUp).Row '<- Column that there is no empty cells
lastCol = Cells(1, Columns.Count).End(xlToLeft).Column

    For j = 1 To lastCol
        For i = 1 To lastRow
            If Cells(i, j).Value = "" Then
                Cells(i, j).Value = Cells(i, j).Offset(-1, 0).Value
            End If
        Next i
    Next j
End Sub