如何将粘贴单元格复制到Excel vba中的相应列中

时间:2016-07-27 07:25:47

标签: excel excel-vba vba

我有一张excel 2007工作表,其中包含数据的列名都放在一列中,我需要将一个列名左移或右移一列,以便我可以有单独的列。您可以创建一个VBA函数,它可以读取列的所有行,并使用某些关键字移动这些列。如:

A1   B1
1     **Category1**
      Cat1 info here
      **cf**
      45
      34
      34
      Sf
      542
      234
      234
2     **Category2**
      Cat2 info here
      **cf**
      76
      23
      67
      **Sf**
      678
      987
      3476

我需要将“ cf ”列+数据移至其他列并将其粘贴到相关类别。因此,“cf”将随着数据向右移动并随其类别向上移动。然后我会删除B列的空行。

1 个答案:

答案 0 :(得分:0)

终于弄清楚了,可能是编码不好但是有效.. :)

全心全意感谢您的帮助。

Sub test()
Dim i As Long
Dim toprow As Long
Dim z As Long
Dim count As Long
Dim b As Long

toprow = 3
b = toprow
For i = toprow To Cells(Rows.count, 1).End(xlUp).Row
If Not Cells(i, 1) = "" And Not Cells(i, 2) = "" Then
     b = i
     count = 0
     z = i
End If
 If Cells(i, 1) = "" Then
   If Cells(i + 1, 1) = "" Then
    z = i
    If Not Cells(z + 1, 2) = "" Then
       Cells(z + 1, 2).Cut Cells(b, 2)
       i = b
       b = z + 1
       count = 0
    ElseIf count = 0 Then
       count = z
       b = count
   End If
   
End If
End If
Next i
End Sub