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合并的单元格