Excel VBA根据之前单元格中的值填充空白单元格

时间:2016-04-01 15:24:42

标签: excel vba excel-vba

我是VBA Excel的新手。

我正在使用excel宏来根据另一个单元格中的值填充单元格中所有空白行的特定值。

比如说,我们有一行:

Data have;
Name= "John";
City="ice";
'06/2006'n= 23;
'07/2006'n = 56;
'12/2006'n = 43;
'11/2006'n = 23;
'10/2006'n = 12;
Run;

Data want;
Name= "John";
City="ice";
V1= 23;
V2 = 56;
V3= 43;
V4 = 23;
V5= 12;
Run;

我希望AR之前的所有空格都填充“OV”,并且“DP”之前的所有空白单元格都填充“OS”

请帮助我,我将能够将它集成到我的大代码中。

感谢。

1 个答案:

答案 0 :(得分:1)

通常我们希望你发布你到目前为止所做的事情,但我很好奇我是否可以编码或不编码。所以!试试这个。如果您需要在多行上执行此操作,则可以添加另一个循环并将1更改为变量。希望这有帮助!

Option Explicit

Sub FillEmpty()

    Dim ws As Worksheet
    Dim myRange As Range
    Dim lColumn As Long
    Dim x As Integer

    Set ws = Worksheets("Sheet1")

    'Find the last column that contains data
    lColumn = ws.Cells.Find(What:="*", _
        After:=ws.Cells(1, 1), _
        LookAt:=xlPart, _
        LookIn:=xlFormulas, _
        SearchOrder:=xlByColumns, _
        SearchDirection:=xlPrevious, _
        MatchCase:=False).Column

    With ws
        For x = lColumn To 2 Step -1
            If .Cells(1, x) = "AR" Then
                .Cells(1, x - 1).Value = "OV"
            ElseIf .Cells(1, x) = "DP" Then
                .Cells(1, x - 1).Value = "OS"
            ElseIf .Cells(1, x).Value <> "" And .Cells(1, x - 1).Value = "" Then
                .Cells(1, x - 1).Value = .Cells(1, x).Value
            End If
        Next x
    End With
End Sub