仅将具有值(在几列中)的单元格复制到仅一列

时间:2014-03-18 11:41:53

标签: excel vba excel-vba

我开始简化工作的过程,所以......

我需要一个VBA代码,将指定范围内的值的单元格复制到一列。我希望效果立竿见影。插入数据后,列将更新。

示例:

的数字复制到范围A2:D9 列F

  • 在真正的VBA代码中我不希望它被限制在一个小范围内,因为我有更多的列然后是A-D,它们长达9行。因此,如果我可以定义一个范围(但在代码而不是新的弹出窗口中),这将是一个很好的:)

  • 颜色和列G没有意义。这只是例如。

截图:

enter image description here

感谢您的耐心和时间...... 非常感谢!

1 个答案:

答案 0 :(得分:0)

这样做:

Sub Macro1()
'
' Macro1 Macro
'
Dim SourceRange As Range
Dim TargetRange As Range
Dim addedCells As Integer
'
Application.Calculation = xlManual

Set TargetRange = Range("F2:F34")
addedCells = 0
Set SourceRange = Range("A2:D9")
For Column = 1 To SourceRange.Columns.Count
    For Row = 1 To SourceRange.Rows.Count
        If Not (SourceRange.Cells(Row, Column) = "") Then
            addedCells = addedCells + 1
            TargetRange.Cells(addedCells, 1) = SourceRange.Cells(Row, Column)
        End If
    Next Row
Next Column

Calculate
Application.Calculation = xlAutomatic

End Sub

添加一些参数以使其动态化。