VBA - 如果列A为空,则剪切并粘贴单元格

时间:2014-12-12 18:01:40

标签: excel vba paste

我要做的是以下内容:

A栏

  • XX
  • YY
  • XX
  • ZZ
  • (空白)
  • (空白)
  • (空白)
  • XX
  • YY
  • HH

...对于空白区域,C" ff,gg,tt"列中的值与空白水平对齐,我需要剪切并粘贴到A列中。适用于整个表格,可能有400行。

所以我想说:

"如果A列有一个空白单元格,则从C列和#34中剪切并粘贴相应单元格的值;

循环浏览文档

3 个答案:

答案 0 :(得分:1)

如果值不是工作表上的公式,这将有效:

Sub test()
Dim i As Long
Dim toprow As Long
toprow = 1 'Change this to whatever the top row is

For i = toprow To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 1) = "" Then
    Cells(i, 3).Copy Cells(i, 1)
End If
Next i
End Sub

否则,您需要将代码修改为pastespecial值

答案 1 :(得分:0)

尝试这个简单的apporoach而无需代码:

1.插入一列A并输入自动行号1,2,3 ... n

2.按列B排序所有列,以对第一行中的所有空格进行分组。

3.一次性将所有列C值复制到Clumn B.

  1. 按A列重新排序列

  2. 删除A栏

答案 2 :(得分:0)

如果您在A列和B列的所有值上运行此操作,并且您希望避免循环,则可以PasteSpecialSkipBlanks。您不需要使用代码,但如果您这样做,则使用:

Columns(2).Copy
Columns(1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=True, Transpose:=False
Columns(2).ClearContents