将单元格值复制到某个条件

时间:2016-05-17 18:20:22

标签: excel excel-vba vba

在excel 2013中,我有很多具有这种结构的数据文件:

  ae:|xxxxx|yyyyy|
    1|aaaaa|bbbbb|
    2|ccccc|ddddd|
...
total|?????|!!!!!|
  ae:|zzzzz|wwwww|
   41|asdas|aswww|
   42|hfghf|yuytu|
...
total|?????|!!!!!|
...

需要你帮助那里的地方" ?????"放置" ae:"之后的数据细胞。 对于上面的例子必须是:

  ae:|xxxxx|yyyyy|
    1|aaaaa|bbbbb|
    2|ccccc|ddddd|
...
total|xxxxx|yyyyy|
  ae:|zzzzz|wwwww|
   41|asdas|aswww|
   42|hfghf|yuytu|
...
total|zzzzz|wwwww|
...

任何帮助都会被贬低。 日Thnx。

1 个答案:

答案 0 :(得分:0)

这是一个简单的VBA子程序来执行此操作。这些都是非常基本的东西,应该足以让您指向正确的工作簿方向。在提出跟进问题之前,请尝试根据您的需求对其进行修改。

Sub getTotal()
    Dim intLastRow as integer
    Dim intRow as integer
    Dim strAEval1 as string 'variable to hold your first ae value
    Dim strAEval2 as string 'variable to hold your second ae value

    intLastRow = 5000 'change this to your last row in your spreadsheet

    'Assuming this data is in Sheet1, Columns A, B, and C and starting at Row 1
    ' loop through each row 
    for intRow = 1 to intLastRow

        'if you find 'ae' then copy the values
        If Sheet1.Range("A" & intRow).value = "ae:" Then
            strAEval1 = Sheet1.Range("B" & intRow).value
            straeval2 = Sheet1.Range("C" & intRow).value

        'if you find 'total' then paste the values we copied
        Elseif Sheet1.Range("A" & intRow).value = "total" Then
            Sheet1.Range("B" & intRow).value = strAEval1
            Sheet1.Range("C" & intRow).value = strAEval2
        End if
    Next intRow
End Sub