我有两行单元格用于创建字符串。问题是,我需要创建交替两组单元格的字符串。以下示例。两行单元格需要如此出现。
“1 1 0 2 1 3 0 4 1 5 0 6 1 7 0 8 1 9”
基本上,Amplitude中的每个单元格都有一个来自Sign的单元格。
有什么想法吗?非常感谢!
答案 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
改进之处在于为每个范围命名,假设您将其称为DataAmplitudes
和DataSigns
。那么代码就是:
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解决方案:
你可以看到细胞B5的配方在起作用。当您向右拖动时,字符串构建基于左侧的结果。
Cell A5是:
=A3 & " " & A1 & " "
Cell B5是:
=A5 & B3 & " " & B1 & " "
当然我在这里添加了数字之间的空格,但这不是必需的,它似乎就是你的问题格式化的方式。我没有看到上面的任何答案提供,所以如果你想省略空格,只需消除所有[&amp; “”]组合。
像:
=A5 & B3 & B1