2011-11-21 120 views
0

如果这是一个细胞:Excel的VBA创建行

Hello; Goodbye 

..和有数百个细胞,我需要做一个“查找和替换”包含所有细胞的“;”并在该点破坏单元格,并将之后的内容移动到以下新插入的行中:

Hello; 
    Goodbye 

回答

0

未针对速度进行优化,但会为您执行此操作。如果您认为这是正确的答案,请确保将其标记为正确答案。

Dim r1 As Range, r2 As Range 
Dim saItem() As String 


For Each r1 In ActiveSheet.Range("A1", Cells(Application.Rows.Count, 2).End(xlUp)) 
    If InStr(1, r1.Value2, ";") > 0 Then 
     saItem = Split(r1.Value2, ";") 
     r1 = Trim$(saItem(0)) & ";" 
     r1.Offset(1).Insert (xlDown) 
     r1.Offset(1) = Trim$(saItem(1)) 
    End If 
Next r1 

对于添加了一个全新的行,而不是

r1.Offset(1).Insert (xlDown) 

做到这一点(没有测试过,但我敢肯定它应该正常工作):

r1.Offset(1).EntireRow.Insert (xlDown) 
+0

不幸的是,我很不熟悉VB。我只需要创建一个宏,编辑它并插入此代码? – captainrad

+0

尝试http://stackoverflow.com/questions/4930142/free-tutorial-websites-for-vba-version-7-for-office-excel-2007 – Fionnuala

+0

没关系!得到它了! – captainrad