VBA Excel - 将列值转换为另一列插入空白行

VBA Excel - 将列值转换为另一列插入空白行

问题描述:

我想转换这些值。VBA Excel - 将列值转换为另一列插入空白行

假设在A1:A20有20个值,在B1:B20也有20个值。

我想以这样的方式来复制塔B的值这一结果应该是:

细胞A1值为A1,细胞A2值为B1,细胞A3值为A2,单元格A4值是B1

同样在单元格A40中的值是B20。 (为了更清晰,我附上了图像)

所以这里的第一步是在列A 中交替插入blanck单元,并且在该空白单元格中复制列B的值。

为了更清楚,请找图像

 example

+5

听起来不错。你为什么不开枪呢,然后回过头来解决你的任何具体问题,那么我们很乐意帮助你。 –

+0

好主意..但这里有些技术人员没有询问任何历史就解决了我的问题。 3人为他们欢呼! – user8731454

总是张贴你先试过的东西!

Sub test() 

    Application.ScreenUpdating = False 

    Dim i As Long 
    For i = 2 To 20 Step 2 
     Sheets("Sheet1").Range("A" & i).EntireRow.Insert 
    Next i 

    Sheets("Sheet1").Range("B1:B40").copy 
    Sheets("Sheet1").Range("A2").PasteSpecial Paste:=xlPasteAll, SkipBlanks:=True 

    Application.ScreenUpdating = True 

End Sub 
+0

非常感谢。我试过了,它的工作正常。 B列电池的颜色为绿色。那么是否有可能让B的属性(lyk bkgrnd color,font color ..)也被复制? – user8731454

+0

我已经更新了代码,基本上你需要使用xlPasteAll来粘贴不同于只粘贴值的初始代码的所有内容。 –

+0

@Downvoter - 请留下评论,因为它会帮助我正确地塑造我的答案。 –

也许这不是你正在寻找的,但另一种解决方案是使用像下面的常规公式。

=IFERROR(INDEX($A$2:$B$9,ROUNDDOWN(ROW()/2,0),ISODD(ROW())+1),"") 

但是,这不会给你正在寻找的颜色。只是抛出另一种方法供您参考。

+0

感谢您的回复..但我想使用单元格的值,因为它是..意味着需要字体颜色,细胞bkgrnd的颜色也。这是客户的要求。 – user8731454

+0

图,所以这只是供您参考。 VBA是您实现目标的唯一途径。 – ian0411