2012-11-25 54 views
0

我需要处理每天以下列方式获取的文件。在VBA中合并列

C1 C2   C3 
618 970000000000 32 
    970000000000 32 

58 970000000000 23 
    970000000000 23 
    970000000000 23 

15 970000000000 119 
    970000000000 119 
    970000000000 119 
    970000000000 119 

15 970000000000 17 
    970000000000 17 

我需要合并C3中的单元格基于C1的合并。请注意C1已经合并。 我希望它看起来像下面

C1 C2   C3 
618 970000000000 32 
    970000000000  

58 970000000000 23 
    970000000000  
    970000000000  

15 970000000000 119 
    970000000000  
    970000000000  
    970000000000  

15 970000000000 17 
    970000000000  

是否有可能写VBA代码?

+1

这类似于一组由出来放在SQL。你如何获得输入文件?你有什么打算合并的意图?你打算如何使用它? – bonCodigo

+0

看起来你不想减少行数;你想消除C3中的重复值。并且每个值块由空行分隔。如果这是真的,那么在VBA中看起来显然是可能的。你去到Excel中的开发者菜单项(我指的是Excel 2010),点击Visual Basic按钮,然后在插入菜单项下选择模块。在代码窗口中,输入你的VBA函数。 – kermit

+0

@ BonCodigo ......我的目的是让我的工作更轻松......当我进行分析时,这些价值观让人分心。 –

回答

0

假设你的数据在列A至C,您可以使用此代码:

Sub MergeMyCells() 
firstRrow = 1 
Range("C1").Select 
lastRow = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row 
Cells(lastRow, 3).Select 
For i = firstRow To lastRow 
    Cells(i, 3).Select 
    If (Not (ActiveCell.Offset(0, -2).Value > 0)) Then 
    ActiveCell.Value = "" 
    End If 
Next 
End Sub 
+0

您可以删除for循环中的select语句并将'ActiveCell'引用替换为'Cells(i,3)'以获得更好的性能 – Pynner