我在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)组合在每个单元格之间。有人可以给我一个剧本或指出我正确的方向吗?
感谢。
答案 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
希望有所帮助:)