VBA Excel:使用交替单元格填充字符串

时间:2014-08-18 20:27:46

标签: excel vba excel-vba

我有两行单元格用于创建字符串。问题是,我需要创建交替两组单元格的字符串。以下示例。两行单元格需要如此出现。

“1 1 0 2 1 3 0 4 1 5 0 6 1 7 0 8 1 9”

基本上,Amplitude中的每个单元格都有一个来自Sign的单元格。

有什么想法吗?非常感谢!

enter image description here

4 个答案:

答案 0 :(得分:2)

如果这些是你问题的唯一要求,你可以使用一个for循环轻松地将这两行放在一起:

硬编码版本(假设"数据点"位于单元格A1):

for i = 1 to 9
ans = ans & Cells(4, i+3) & Cells(2, i+3)
next  

现在我会让你自己尝试非硬编码

答案 1 :(得分:1)

你可以这样做,但是这个字符串看起来不是很有用,而且可能有更好的方法来做你想做的事情:

Dim rowAmplitude As Long
rowAmplitude = 4 ' CHANGE THIS

Dim rowSign As Long
rowSign = 6 ' CHANGE THIS

Dim colStart As Long
colStart = 4 ' CHANGE THIS

Dim colEnd As Long
colEnd = 10 ' CHANGE THIS

Dim msg As String

Dim c As Long
For c = colStart To colEnd
    If msg <> "" Then msg = msg & " "
    msg = msg & Cells(rowSign, c).Value
    msg = msg & " "
    msg = msg & Cells(rowAmplitude, c).Value
Next

改进之处在于为每个范围命名,假设您将其称为DataAmplitudesDataSigns。那么代码就是:

Dim numCells As Long
numCells = Range("DataAmplitudes").Cells.Count

Dim msg As String

Dim c As Long
For c = 1 To numCells
    If msg <> "" Then msg = msg & " "
    msg = msg & Range("DataSigns").Cells(c).Value
    msg = msg & " "
    msg = msg & Range("DataAmplitudes").Cells(c).Value
Next

答案 2 :(得分:1)

也许这样,没有什么花哨的

Sub test()
Range("D3").Activate
Do Until ActiveCell.Offset(-1, 0).Value = ""
    ActiveCell.Value = ActiveCell.Offset(1, 0).Value & ActiveCell.Offset(-1, 0).Value
    ActiveCell.Offset(0, 1).Select
Loop
End Sub

答案 3 :(得分:1)

非VBA解决方案:

enter image description here

你可以看到细胞B5的配方在起作用。当您向右拖动时,字符串构建基于左侧的结果。

Cell A5是:

=A3 & " " & A1 & " "

Cell B5是:

=A5 & B3 & " " & B1 & " "

当然我在这里添加了数字之间的空格,但这不是必需的,它似乎就是你的问题格式化的方式。我没有看到上面的任何答案提供,所以如果你想省略空格,只需消除所有[&amp; “”]组合。

像:

=A5 & B3 & B1