前一列的VBA计数

时间:2013-09-04 20:56:25

标签: vba

我正在寻找以下示例的解决方案。我有一个客户向我发送了一个包含321列随机长度的电子表格。在第2行,它们有一个商店编号。对于每列,存在不同的商店编号。我需要在每列之间插入一个空白列,然后将新列中的商店编号复制为相同长度的单元格数。

我使用以下内容添加列:

Sub InsertColumns()
Dim J As Integer, k As Integer
    J = Range("A1").End(xlToRight).Column
'j is the last column
For k = J To 2 Step -1
Range(Cells(1, k), Cells(1, k)).EntireColumn.Insert
Next k 

我只需要根据前一列中的数据进行计数的代码,复制上一个商店中的值,并根据前一列的行数将其粘贴到列中。

谢谢! 乔

2 个答案:

答案 0 :(得分:0)

尝试在发布的代码块下方添加以下内容:

Range(Cells(2, 1), Cells(2, (J * 2))).Copy
Range("B2").Select
ActiveSheet.PasteSpecial Format:=1, Link:=1, DisplayAsIcon:=True, IconFileName:=False

基本上它会将第二行复制到您有数据的位置(先前计算的列数为2以考虑添加的空白),选择第一个空白单元格,然后执行选中“跳过空白”属性的“粘贴特殊”上。

答案 1 :(得分:0)

Sub tgr()

    Dim cIndex As Long

    For cIndex = Cells(2, Columns.Count).End(xlToLeft).Column To 2 Step -1
        Columns(cIndex + 1).Insert
        Range(Cells(1, cIndex + 1), Cells(Rows.Count, cIndex).End(xlUp).Offset(, 1)).Value = Cells(2, cIndex).Value
    Next cIndex

End Sub