如何逐行循环直到找到空白单元格

时间:2017-01-11 21:42:58

标签: vba excel-vba excel

我在Excel 2010中工作。我尝试在一列中连接值,并在每个单元格之间输入Char(10)。所以,我在细胞BC2:BC11中工作,我想连接细胞BC1中的所有东西。我为BC1想出了这个:

ActiveCell.FormulaR1C1 = "=R[1]C & CHAR(10) & R[2]C & CHAR(10) & R[3]C & CHAR(10) & R[4]C & CHAR(10) & R[5]C & CHAR(10) & R[6]C & CHAR(10) & R[7]C & CHAR(10) & R[8]C & CHAR(10) & R[9]C & CHAR(10) & R[10]C"

它可以工作,但问题是我的数组中通常会有少于10个值,所以我在最后收到了一堆换行符,这会弄乱下游的某些东西。我想提出一种优雅的方式来循环BC2:BC11并将所有内容与CHAR(10)组合在每个单元格之间。有人可以给我一个剧本或指出我正确的方向吗?

感谢。

2 个答案:

答案 0 :(得分:2)

没有循环的可能代码

With ActiveCell
    .value = Join(Application.Transpose(.Offset(1).Resize(10).value), " ") '<--| change "10" to your actual cells number to be considered below active cell
    .value = WorksheetFunction.Trim(.value) 
    .Replace " ", Chr(10)
End With

答案 1 :(得分:1)

您可以通过多种方式实现这一目标。假设您总是使用BC2:BC11,您可以创建一个简单的for循环来构建字符串,然后将结果输出到活动单元格。

Dim newString As String
For i = 2 To 11

    If ActiveSheet.Range("BC" & i).Text <> "" Then
        If newString = "" Then
            newString = ActiveSheet.Range("BC" & i).Text
        Else
            newString = newString & Chr(10) & ActiveSheet.Range("BC" & i).Text
        End If
    End If

Next

ActiveCell.Value = newString

希望有所帮助:)