EXCEL VBA帮助 – function插入空白单元格

我需要一些excel VBA函数的帮助。

我有这样的数据

ColA ColB a123 a123 a124 a124 a127 a126 a128 a127 .... .... 

我想比较ColA和ColB的内容,其中内容不同我想插入一个空白单元格到A列。所以结果将如下所示:

 ColA ColB a123 a123 a124 a124 a126 a127 a127 .... .... 

任何build议,如何我可以在Excel中做到这一点。

提前致谢


更新


我试着用下面的代码来插入单元格的方法,它工作正常,我现在意识到,当我运行它,我需要一些更多的function,虽然。

 first_col.Cells(row, 1).Select Selection.Insert Shift:=xlDown 

如果删除了“a”的ColA中的值小于删除了“a”的ColB中的值,我想在ColA中插入单元格,并且还需要在ColC中的相同位置插入单元格(包含其他数据)。 如果ColB具有较大的值,我想只在ColB中插入单元格。 我想我知道如何在If语句中做什么,但我不知道如何构buildIF。 这是我在想什么

 Set other_col = Range("C1:C100") //if substring of ColA > substring of ColB first_col.Cells(row, 1).Select Selection.Insert Shift:=xlDown other_col.Cells(row, 1).Select Selection.Insert Shift:=xlDown //else second_col.Cells(row, 1).Select Selection.Insert Shift:=xlDown 

你的比较声明可能是这样的:

 Sub Expand() Dim first_col As Range, cell As Range Dim row As Integer Set first_col = Range("A2:A100") For Each cell In first_col If Right(cell.Value, 3) < Right(cell.Offset(0, 1).Value, 3) Then ' Shift in here End If Next cell End Sub 

“Right”函数查看第二个参数指定的右侧字符数。

另一个需要注意的是这样的代码段使用.select方法:

 first_col.Cells(row, 1).Select Selection.Insert Shift:=xlDown 

可以这样截断:

 first_col.cells(row, 1).insert shift:=xlDown 

“select”和“select”是来自macroslogging器的剩余物,并且通常不用于VBA代码。

我不知道确切的VBA代码插入一行,但你可以通过录制一个macros来发现。 以下是其余代码(循环遍历列并进行比较):

 Sub Expand() Dim first_col as Range Dim second_col as Range Dim row as Integer Set first_col = Range("A2:A100") Set second_col = Range("B2:B100") For row = 1 To second_col.Rows.Count If first_col.Cells(Row, 1).Value <> second_col.Cells(Row, 1).Value Then '// code to insert the row' End If Next row End Sub 

我通过select一些单元格和插入loggingmacros,我试图通过创build我自己的子和它的工作

 Range("c16:e16").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 

编辑注意这个代码导致unmerg合并的单元格